ADMINISTRATION SERVER, ADMINISTRATION SYSTEM, AND ADMINISTRATION METHOD
20170106530 ยท 2017-04-20
Inventors
Cpc classification
B25J9/1694
PERFORMING OPERATIONS; TRANSPORTING
G06F11/3006
PHYSICS
G05B23/0297
PHYSICS
B25J9/161
PERFORMING OPERATIONS; TRANSPORTING
G06F11/3065
PHYSICS
G06F11/3013
PHYSICS
International classification
Abstract
In a case where an administration server is disposed, and manages and operates a plurality of robots, a robot operation may be impaired due to a request interval for extracting sensor information stored in a robot from the robot, the types of sensors, and the number of sensors.
Claims
1. An administration server comprising: an action definition file in which the number of sensors, types of sensors, and a CPU threshold value are stored in advance with respect to a behavior state of an apparatus having a plurality of sensors; and a processing unit, wherein the processing unit acquires a behavior state of the apparatus, refers to the action definition file, and determines the number and types of a plurality of sensors which acquire data from the apparatus, based on the number of sensors and the types of sensors for the behavior state of the apparatus, and determines a request interval for requesting a data acquisition of the plurality of sensors so that a CPU use ratio of the apparatus does not exceed the CPU threshold value by the number of sensors.
2. The administration server according to claim 1, wherein the types of sensors in the action definition file include types and the number of one or a plurality of sensors which are minimum required, and wherein the processing unit refers to the action definition file, always secures one or a plurality of sensors which are minimum required at each request interval according to the number of sensors and the request interval determined, sequentially extracts a plurality of sensors other than the sensors data of which are minimum required among all of the sensors, and sends a request to the apparatus.
3. The administration server according to claim 2, wherein the processing unit uses a request interval as an average value for each of the plurality of sensors, and determines a request interval for each sensor based on a predetermined variance or standard deviation.
4. The administration server according to claim 2, wherein the processing unit uses a request interval as an average value for each predetermined sensor group, and determines a request interval for each sensor group based on a predefined variance or standard deviation.
5. The administration server according to claim 4, wherein the processing unit determines request intervals for respective sensor groups based on priorities predetermined for the respective sensor groups so that the sensor group having a higher priority has a shorter request interval.
6. The administration server according to claim 5, wherein the processing unit determines the priorities based on a data change ratio of information acquired from a plurality of sensors of each respective sensor group so that a higher data change ratio corresponds to a higher priority.
7. The administration server according to claim 5, wherein the processing unit calculates an average value of information acquired from a plurality of sensors of each sensor group, and in a case where the average value is equal to or greater than a predetermined threshold value, the processing unit sets the priority of the sensor group to be high, and determines a request interval for the sensor group to be short.
8. The administration server according to claim 5, wherein in a case where data of a sensor group in which a data change ratio is equal to or more than a predetermined threshold value is acquired according to a predetermined correlation between predefined clustered sensor groups, the processing unit further acquires data of a sensor group having a high correlation with the sensor group, or determines a priority of a sensor group having a high correlation with a sensor group whose priority is more than a predetermined threshold value, to be high.
9. The administration server according to claim 5, wherein the apparatus obtains an instantaneous Mahalanobis distance based on time-series data of clustered sensor information to be transmitted, and determines a priority of a sensor group to be high in a case where the Mahalanobis distance exceeds a predetermined threshold value.
10. The administration server according to claim 1, wherein the action definition file stores the number of sensors, the types of sensors, and the CPU threshold value with respect to the behavior state and radio wave intensity, in advance, and wherein the processing unit acquires radio wave intensity of communication with the apparatus, refers to the action definition file, and acquires the number of sensors, the types of sensors, and the CPU threshold value according to the behavior state of the apparatus and the radio wave intensity.
11. An administration system comprising: an apparatus having a plurality of sensors; and an administration server having an action definition file in which the number of sensors, types of sensors, and a CPU threshold value are stored in advance with respect to a behavior state of the apparatus; wherein the administration server acquires a behavior state of the apparatus, refers to the action definition file, and determines the number and types of a plurality of sensors which acquire data from the apparatus, based on the number of sensors and the types of sensors for the behavior state of the apparatus, determines a request interval for requesting a data acquisition of the plurality of sensors so that a CPU use ratio of the apparatus does not exceed the CPU threshold value by the number of sensors, requests the data acquisition of the plurality of sensors to the apparatus in accordance with the request interval, and wherein the apparatus transmits the data of the plurality of sensors to the administration server in response to the request from the server.
12. The administration system according to claim 11, wherein the administration server measures an amount of information transmitted from the apparatus as a throughput, and transmits a control command for aggregating transmitted packets to the apparatus in a case where the measured throughput is equal to or more than a predetermined threshold value, and wherein the apparatus aggregates clustered sensor information to be transmitted, and transmits the sensor information to the administration server.
13. The administration system according to claim 12, wherein, if the control command is received, the apparatus aggregates information of a plurality of sensors of a sensor group having low priority and transmits the aggregated information to the administration server.
14. The administration system according to claim 12, wherein the apparatus aggregates information of a plurality of sensors of a sensor group in which a data change ratio is more than a predetermined threshold value among sensor information to be transmitted for each sensor group, and transmits the aggregated information to the administration server.
15. An administration method by an administration server, the administration server comprising: an action definition file in which the number of sensors, types of sensors, and a CPU threshold value are stored in advance with respect to a behavior state of an apparatus having a plurality of sensors; and a processing unit, wherein the processing unit acquires a behavior state of the apparatus, refers to the action definition file, and determines the number and types of a plurality of sensors which acquire data from the apparatus, based on the number of sensors and the types of sensors for the behavior state of the apparatus, and determines a request interval for requesting a data acquisition of the plurality of sensors so that a CPU use ratio of the apparatus does not exceed the CPU threshold value by the number of sensors.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
DETAILED DESCRIPTION OF THE EMBODIMENTS
A. Summary
[0056] An administration system according to the present embodiment is, for example, a system in which an apparatus including a sensor and a server perform communication in a wireless or wired manner, in which the server periodically detects a behavior state of the apparatus, determines the number and types of sensors data of which is to be acquired therefrom according to the behavior state of the apparatus, and determines a cycle (request interval) for acquiring the data from the sensors so that a CPU use ratio of the apparatus does not exceed a predetermined threshold value, and in which the apparatus transmits sensor information to an administration server based on requested sensor information or apparatus setting information which is periodically transmitted from the server.
B. System and Device
[0057]
[0058]
[0059] The RAM 201 stores an action definition file, a request interval table, and the like (which will be described later in detail).
[0060]
[0061] The robot includes a sensor collector, an actuator controller, and a network interface. The robot controls the actuators incorporated into respective joints of the robot by using the actuator controller so as to drive the robot. The sensor collector extracts sensor information from the various sensors and stores the sensor information in the RAM. As described above, the operation of storing the sensor information in the RAM is performed in the robot, and the ROS or the like performs scheduling control in order to store sensor information in the RAM efficiently, and thus a load on the CPU of the robot is considerably reduced. In a case where the administration server requests sensor information to be transmitted to the administration server, the sensor collector extracts sensor information which is instructed to be transmitted to the administration server, from the RAM, and transmits the sensor information to the administration server via the network interface by using a communication protocol such as TCP or SOAP. The sensor collector may send back sensor information requested from the administration server to the administration server according to whether or not the sensor information is aggregated and the priority of each sensor, requested from the administration server.
[0062] In this case, the operation of storing the sensor information in the RAM is performed in the robot, and the ROS or the like performs scheduling control in order to store sensor information in the RAM efficiently, and thus a load on the CPU of the robot is reduced. However, for an external request such as a request from the administration server to the robot for extracting sensor information from the RAM, the ROS or the like cannot control scheduling on such an external request and thus a load on the CPU of the robot increases. A case is expected in which a CPU load ratio of the robot increases under a situation in which an external request is frequently made. In this case, a CPU load ratio increases according to a frequently made request, and this may possibly bring robot control into an unstable state or cause communication disconnection between the administration server and the robot. Therefore, it is necessary to control an external request to an extent to which a failure does not occur, for example, robot control is not brought into an unstable state. In other words, the failure such as an unstable state of robot control occurs due to the increase in a CPU load ratio. Therefore, in the CPU resource of the robot, a predetermined threshold value is required to be determined in advance so that a failure such as communication disconnection from the administration server due to deficiency of the CPU resource or an unstable state of robot control does not occur, and thus it is necessary to drive the robot at a CPU use ratio which is equal to or less than the predetermined threshold value.
C. Behavior Status, CPU Load, and Action Definition File
[0063] In describing the present embodiment in detail, a dependency is qualitatively considered with respect to a CPU load of the robot. The CPU load may greatly depend on the following three factors.
(1) Behavior status of robot
(2) Types of sensors and number of sensors
(3) Interval between requests sent from administration server to robot in order to collect information
[0064] First, regarding the above (1), a CPU load ratio greatly depends on a behavior status of the robot, and a CPU threshold value not causing an unstable state of robot control differs for each behavior status of the robot. The behavior status indicates, for example, behavior states of the robot such as WALK (walking), SIT (sitting), and STAND (standing) of the robot. The robot periodically stores these behavior statuses in the RAM as parameters, and thus the server can acquire the behavior statuses from the RAM. Since the influence exerted on the CPU differs for each behavior status of the robots, it is necessary to define a CPU threshold value for each behavior status. As an example, in a case where a behavior status of the robot is SIT, even if sensor information stored in the RAM of the robot is periodically extracted, and thus a CPU load ratio increases to about 50%, an operation of the robot is not influenced until the CPU load ratio becomes 50%. However, if sensor information is extracted in a case where a behavior status of the robot is a WALK state at a request interval in a case where a behavior status is a SIT state, a CPU load caused by the walking action is added to the CPU load ratio of 50%, for example, and thus the CPU load ratio increases to, for example, 60% or more. In this case, in a state in which the CPU load ratio exceeds 60%, communication disconnection or an unstable state of robot control may occur. Particularly, in a case where control becomes unstable during walking of the robot, human safety is neglected, and this may cause serious damage to a customer. However, in a case where a behavior status of the robot is a SIT state, even if communication disconnection or an unstable state of robot control occurs, it is expected that there is a low probability that the robot may do damage to a human or an object. As mentioned above, by taking into consideration human safety for each behavior status, it is essential to test and define whether or not quality of service (QoS) of the robot is maintained at what extent of a CPU load, with the robot in advance.
[0065] Next, regarding the above (2), the CPU load ratio greatly depends on the types of sensors and the number of sensors. For example, as sensors, there are temperatures of motors which move joints of the arms, the head, the feet, and the like of the robot, and images from the camera of the head of the robot, and influences of the temperatures and the images on the CPU are different from each other. The number of sensors for acquiring information greatly influences the CPU. For example, the robot has about 4000 pieces of sensor information, and loads on the CPU are different from each other in a case of periodically acquiring 10 pieces of sensor information and in a case of periodically acquiring 40 pieces of sensor information. Of course, the case of periodically acquiring 40 pieces of sensor information has greater influence on the CPU.
[0066] Regarding the above (3), a request interval for acquiring a sensor (sensor information) also greatly influences a CPU load. The influence on a CPU load differs for each request interval for acquiring sensor information. Of course, a case where a request interval is short has greater influence on a CPU load.
[0067] In other words, a CPU load greatly depends on (1) a behavior status, (2) the types of sensors and the number of sensors, and (3) a request interval. In a case where resource management is performed by taking into consideration the CPU of the robot in order to perform highly accurate control, it is very important to examine such a relationship carefully in advance.
[0068] To achieve a highly accurate robot operation by performing resource management based on the above description, it is necessary to define four parameters, that is, a CPU threshold value (for example, an upper limit value of an allowable CPU load or the like during operation), the types of sensors, the number of sensors, and a request interval for each behavior status.
[0069] The three parameters, that is, the types of sensors, the number of sensors, and the CPU threshold value have high priority parameters when determined for each behavior status, and are determined at the discretion of the administrator. This is because defining the types of sensors, the number of sensors, and the CPU threshold value for each behavior status depends on service content and QoS of the robot. In other words, what service is provided (a behavior status, the types of sensors, and the number of sensors), and to what extent the quality of the provided service (CPU threshold value) is are within the discretion of the administrator, and the types of sensors, the number of sensors, and the CPU threshold value are defined for each behavior status based on the provided service and the service quality. For example, in a case of a service in which the robot performs reception work instead of a human, a behavior status of the robot is always expected to be a SIT state, and, in this case, the robot contacts customers over a counter. Therefore, human safety is negligible, and, for example, even if the robot is required to be reactivated due to the occurrence of, for example, an unstable state of control or communication disconnection, and thus service quality is lowered, it can be expected that customers are not physically damaged. In this case, high quality service may be provided to customers by setting the CPU threshold value to be great, defining the types of sensors and the number of sensors to be multiple, and acquiring such information. In addition, availability of a robot may be ensured by setting the CPU threshold value to be small, and defining the types of sensors and the number of sensors so that an unstable state of robot control or communication disconnection does not occur. These are all defined at the discretion of an administrator or a service provider.
[0070] Here, a request interval is defined based on the CPU threshold value, the behavior status, the types of sensors, and the number of sensors, which are determined. This is because, since a CPU load greatly depends on a behavior status, the types of sensors, the number of sensors, and a request interval, a relational expression is derived through careful examination of a relationship thereamong in advance, and thus the request interval can be calculated. A request interval may be first defined based on such a relational expression, and then a behavior status, the types of sensors, and the number of sensors may be determined. However, when taking into consideration a robot service, a request interval may be generally lower than other parameters in terms of priority.
[0071]
D. Control Corresponding to Behavior Status
[0072] When a robot is controlled with high accuracy, it is essential to perform resource management in which the CPU is taken into consideration. Therefore, it is necessary that the CPU resource of the robot determines a predetermined threshold value in advance so that a failure such as communication disconnection from the administration server due to deficiency of the CPU resource or an unstable state of robot control does not occur, and that the CPU resource of the robot drives the robot at a CPU use ratio which is equal to or less than the predetermined threshold value. A CPU load greatly depends on a behavior status of the robot, and is thus required to be set for each behavior status. If a CPU use ratio exceeds a predetermined CPU threshold value during a certain behavior status of the robot, a case is expected in which there is a high probability that a failure such as communication disconnection or an unstable state of robot control may occur. Therefore, in order to perform control so that a CPU use ratio does not exceed a predetermined CPU threshold value, it is necessary to dynamically change the number of sensors and the types of sensors required to control the robot according to a behavior status of the robot, and to dynamically change the number of requests, that is, a request interval for extracting sensor information based on the number of sensors, the types of sensors, and the behavior status of the robot.
[0073]
[0074] Here, a case is assumed in which the administration server acquires sensor information stored in the RAM from the robot at a constant number of sensors and a constant request interval (for example, the number of sensors is 30, and the request interval is 400 ms). In other words, control is not performed so that the number of sensors and the request interval are dynamically changed. However, a behavior status of the robot is dynamically changed. In a case where a behavior status of the robot is changed from a STAND state to a WALK state in which a walking speed is high, if the number of sensors and the request interval are constant, the CPU use ratio exceeds the predetermined CPU threshold value, and thus communication disconnection between the administration server and the robot or an unstable state of robot control may occur. Then, a behavior status of the robot is changed to a WALK state in which a walking speed is low, the CPU use ratio is near the predetermined CPU threshold value. Also in this case, a probability that communication disconnection between the administration server and the robot or an unstable state of robot control may occur is not low. As mentioned above, if the number of sensors to be acquired and a request interval acquired from the robot are not controlled, communication disconnection between the administration server and the robot or an unstable state of robot control may occur, and thus a case may be expected in which a robot operation is impaired.
[0075] It is assumed previously that the administration server acquires sensor information from the robot at a constant number of sensors and a constant request interval (for example, the number of sensors is 30, and the request interval is 400 ms), but, in the present embodiment, the number of sensors and the request interval are assumed to be dynamically changed. In this case, unlike the previous case, in a case where a behavior status of the robot is changed from a STAND state to a WALK state in which a walking speed is high (WALK HIGH SPEED, WALK SLOW SPEED), if the number of sensors and the request interval are dynamically controlled so that a CPU use ratio is equal to or less than a predetermined threshold value, a probability that communication disconnection between the administration server and the robot and an unstable state of robot control may occur is considerably low, and it is possible to perform high quality resource management and highly accurate robot control.
[0076] For example, in a case where a behavior status of the robot is a STAND state, the number of sensors, the types of sensors, and the request interval for extracting sensor information stored in the RAM of the robot from the robot are dynamically changed and controlled. In this case, the number of sensors to be acquired is defined in a STAND state of a behavior status of the robot by referring to the action definition file defining the number of sensors which are acquired in advance for each behavior status. In the defined number of sensors, the type and the number of minimum required sensors are defined for each behavior status of the robot, and other sensor information is acquired through dynamic changing on a best effort basis. A relational expression thereof is as follows.
N.sub.s>=N.sub.e+N.sub.b(16)
N.sub.s: Number of sensors, N.sub.e: Number of minimum required sensors, and N.sub.b: Number of sensors to be acquired on best effort basis
[0077] In a case where a service is provided by operating a robot, a behavior status of the robot, and sensor information which is minimum required to be acquired, corresponding to the behavior status of the robot, are defined according to the service content. For example, in a case of a service in which the robot performs reception work instead of a human, it is expected that a behavior status of the robot is always a SIT state. In this case, when the reception work is performed, a customer's desire should be heard, and thus at least a voice recognition function needs to be activated. In this case, the robot may hear and recognize words spoken by the customer, and may transmit the words to the administration server. The administration server may retrieve a preferred answer through deep learning based on the words. Since face recording such as a facial expression, or a male or a female is important information in determining a variety of determinations in a case of providing a service, image data may be minimum required sensor information. However, sensors other than the two sensors may be defined as not always required sensors when performing the reception work. In this case, it is assumed that the sensors other than the two sensors are acquired under an instruction from the administration server depending on an appropriate situation. In this case, the CPU threshold value in a case where a behavior status of the robot is SIT is defined by referring to the action definition file, and, if the types of sensors and the number of sensors are defined, a request interval can be acquired from the relational expression.
[0078]
E. Relational Expression
[0079]
C.sub.r=A*ln(req)+B(1)
req: Request interval, C.sub.r: CPU load ratio, A: Slope, and B: Intercept
[0080] From the graph of
A=.sub.A*ln(N)+.sub.A(2)
B=.sub.B*ln(N)+.sub.B(3)
N: Number of sensors, A: Slope, B: Intercept, .sub.A: Slope in relational expression of A, .sub.A: Intercept in relational expression of A, .sub.B: Slope in relational expression of B, and .sub.B: Intercept in relational expression of B
[0081] A request interval can be derived from the CPU load ratio according to the relational expression shown in (1), and, in this case, the request interval can be obtained from the following equation.
req=exp((C.sub.rB)/A)(4)
A: Slope, B: Intercept, req: Request interval, and C.sub.r: CPU load ratio
[0082] Equation (4) can be calculated by using Equations (2) and (3), that is, a request interval can be calculated based on the number of sensors.
[0083] As an example, a graph written as 36 sensors is a diagram illustrating a CPU load ratio of the robot in a case where sensor information of 36 types are acquired from the robot at each request interval expressed on the transverse axis. A relational expression between the request interval and the CPU load ratio in this case is as in the following equation.
C.sub.r=10.9 ln(req)+77.346(5)
req: Request interval, and C.sub.r: CPU load ratio
[0084] For example, in a case where the CPU load ratio is 30%, the administration server periodically acquires sensor information of 36 types from the robot at a request interval of 70 ms. In other words, in a case where the sensor information of 36 types are acquired, if the CPU load ratio is desired to be equal to or less than 30%, the information may be periodically acquired from the robot at a request interval of 70 ms or more. In other words, this indicates that the minimum request interval at 30% or less is 70 ms.
[0085] As another example, a graph written as 10 sensors is a diagram illustrating a CPU load ratio of the robot in a case where sensor information of 10 types are acquired from the robot at each request interval expressed on the transverse axis. A relational expression between the request interval and the CPU load ratio in this case is as in the following equation.
C.sub.r=7.006 ln(req)+50.756(6)
req: Request interval, and C.sub.r: CPU load ratio
[0086] In the same manner as in the 36 types, in a case where the CPU load ratio is 30%, the administration server periodically acquires sensor information of 10 types from the robot at a request interval of 20 ms. In other words, in a case where the sensor information of 10 types are acquired, if the CPU load ratio is desired to be equal to or less than 30%, the information may be periodically acquired from the robot at a request interval of 20 ms or more. In other words, this indicates that the minimum request interval at the CPU load ratio of 30% or less is 20 ms.
[0087] Here, relational expressions between a slope and an intercept, and the number of sensors are derived by using Equations (5) and (6). In this case, the relational expressions between the number of sensors, and a slope and an intercept are as in the following equations according to Equations (5) and (6), and Equations (2) and (3).
A=2.427 ln(N)1.925(7)
B=14.67 ln(N)+21.214(8)
A: Slope, B: Intercept, and N: Number of sensors
[0088] If the number of sensors and a CPU load ratio can be defined by using Equations (7) and (8), and Equation (4), the minimum request interval at that time can be defined.
[0089] The sensor information acquired here is assumed to be sensor information in which only a value such as temperature data is transmitted to the administration server without taking into consideration image data such as a moving image and voice data such as a voice. If image data such as a moving image and/or voice data such as a voice are (is) taken into consideration, the sensor information has great influence on a CPU load since there is a difference in an information amount from other sensor information, and thus it is necessary to carefully examine a relationship between a request interval based on image data and/or voice data and a CPU load ratio so that a new relational expression is derived. In a case where image data which is different from other sensor information is acquired, it is known from various tests that a load ratio increases by, for example, about 10%. A relational expression between the request interval and the CPU load ratio in this case may be calculated as follows in a case of taking into consideration influence of the image data on the CPU load ratio.
C.sub.r=10.9 ln(req)+77.346+C.sub.p(9)
req: Request interval, C.sub.r: CPU load ratio, and C.sub.p: CPU load ratio (for example, 10%) due to image
[0090] A request interval can be derived from the CPU load ratio according to the relational expression shown in (4), and, in this case, the request interval can be obtained from the following equation.
req=exp((C.sub.rBC.sub.p)/A)(10)
A: Slope, B: Intercept, req: Request interval, C.sub.r: CPU load ratio, and C.sub.p: CPU load ratio (for example, 10%) due to image
[0091] Equation (10) can be calculated by using Equations (2) and (3), that is, a request interval can also be calculated based on the number of sensors in a case where image data having great influence on the CPU is acquired from the robot. If a voice recognition function is activated, a load ratio increases by about 10%. A relational expression between a request interval and a CPU load ratio in this case may be calculated as in the following equation in a case of taking into consideration influence of voice recognition on the CPU load ratio.
C.sub.r=10.9 ln(req)+77.346+C.sub.s(11)
req: Request interval, C.sub.r: CPU load ratio, and C.sub.s: CPU load ratio (10%) due to voice recognition
[0092] A request interval can be derived from the CPU load ratio according to the relational expression shown in (4), and, in this case, the request interval can be obtained from the following equation.
req=exp((C.sub.rBC.sub.s)/A)(12)
A: Slope, B: Intercept, req: Request interval, C.sub.r: CPU load ratio, and C.sub.s: CPU load ratio (10%) due to voice recognition
[0093] Equation (12) can be calculated by using Equations (2) and (3), that is, a request interval can also be calculated based on the number of sensors in a case where voice recognition having great influence on the CPU is activated.
[0094] In a case where the robot transitions from a SIT state to a WALK state, a load ratio is, for example, 10% higher in the WALK state than in the SIT state. A relational expression between a request interval and a CPU load ratio in this case may be calculated as in the following equation in a case of taking into consideration influence of WALK as a behavior status of the robot on a CPU load.
C.sub.r=7,006 ln(req)+50.756+C.sub.w(13)
req: Request interval, C.sub.r: CPU load ratio, and C.sub.w: CPU load ratio (10%) due to walking
[0095] A request interval can be derived from the CPU load ratio according to the relational expression shown in (4), and, in this case, the request interval can be obtained from the following equation.
req=exp((C.sub.rBC.sub.w)/A)(14)
A: Slope, B: Intercept, req: Request interval, C.sub.r: CPU load ratio, and C.sub.w: CPU load ratio (for example, 10%) due to walking
[0096] Equations (10), (12) and (14) are combined with each other, and a relational expression for calculating a request interval from the number of sensors is as follows.
req=exp((C.sub.ThBC.sub.wC.sub.pC.sub.s)/A)(15)
N: the number of sensors, A: Slope, B: Intercept, C.sub.Th: CPU threshold value, and C.sub.w: CPU load ratio due to walking C.sub.p: CPU load ratio due to image, C.sub.s: CPU load ratio due to voice recognition, and req: Request cycle
[0097] A request interval is calculated from the number of sensors by using the above Equation (15). The number of sensors may be defined from a request interval by using the above equation.
F. Sending of Request to Robot
[0098]
[0099] The administration server can control the robot not only through wired communication but also through wireless communication. In this case, the administration server dynamically changes the types of sensors or the number of sensors, and a request interval for acquiring sensor information from the robot based on the intensity of a radio wave. It is very important to dynamically change the types of sensors or the number of sensors, and a request interval for acquiring sensor information from the robot based on the intensity of a radio wave in order to increase RAS of the system. In other words, since a probability of the occurrence of a packet loss is low at a location where radio intensity is high, control is performed so that the administration server acquires many types and a large number of sensors from the robot at a high frequency. Conversely, since a probability of the occurrence of a packet loss is high at a location where radio intensity is low, high priority is given to only the types of sensors, the number of sensors to be acquired is reduced as much as possible, and control is performed so that a request interval for the administration server acquiring sensor information from the robot is set to be as long as possible. However, if a request interval is set to be too long, QoS regarding a robot service is lowered, and thus control is performed so that a request interval is set to be long to the extent to which minimum QoS is ensured.
[0100]
[0101] In a case of taking into consideration of the radio wave intensity, the action definition file illustrated in
[0102]
G. Request Interval for Each Sensor or Each Sensor Group
[0103] Hereinafter, a description will be made of a method in which the administration server (CPU) sets a request interval for each sensor or each sensor group (cluster) based on a calculated request interval. The administration server (CPU) stores each set request interval in a request interval table, and sends a request to each sensor or each sensor group by referring to the table.
[0104]
X=Y=N/2(17)
X: Number of positive sets, Y: Number of negative sets, and N: Number of sensors
[0105] Next, the number of positive sets or the number of negative sets is applied to a variance, and thus a sum total of variations is calculated. A relational expression thereof may be defined as in the following Equations (18), (19) and (20).
2*N/2=2*X=2*Y=(x.sub.im).sup.2(18)
2: Variance, N: Number of sensors, x.sub.i: Request interval for each sensor, m: Average of request intervals of positive sets or negative sets, X: Number of positive sets, and Y: Number of negative sets
2*R.sub.i=(x.sub.im).sup.2=2*X=2*Y(19)
R.sub.i=X=Y=N/2(20)
2: Variance, R.sub.i: Proportion for variance for defining variation of each sensor, x.sub.i: Request interval for each sensor, and m: Average of request intervals of positive sets or negative sets
[0106] The administration server (CPU) defines each variation after calculating the sum total of variations, and calculates each request interval of the positive sets. Each variation is computed by applying a certain proportion based on the variance. Each request interval is calculated by adding a standard deviation which is calculated by using a random number, to the average of the request intervals. Here, an added standard deviation is positive in a case of the positive sets, and an added standard deviation is negative in a case of the negative sets. In order to compute the standard deviation, each variation is computed by using a random number. A sum total of the respective variations are computed by using random numbers, so as to be the same as the previously calculated sum total of variations. A relational expression thereof is defined as in Equation (21). Here, when respective request intervals of the positive sets and the negative sets are computed, the request intervals are sequentially computed, but the last request interval is computed by using Equation (22) without using a random number.
(x.sub.im).sup.2=(R.sub.iR.sub.j)*random(01)(21)
(x.sub.im).sup.2=(R.sub.iR.sub.j)(22)
2: Variance, (x.sub.im).sup.2: Variation between each request interval and average in positive set, R.sub.i: Sum total of variations of positive sets or negative sets, R.sub.j: Computed sum total of variations, Request interval for each sensor, and m: Average of request intervals of positive sets or negative sets, X: Number of positive sets
[0107] The administration server (CPU) can define a request interval for each sensor by using the equations. A specific example will be described below. For example, as illustrated in
Proportion for variance of sensor 1:(50)*random number(0.4)=2
Proportion for variance of sensor 2:(52)*random number(0.166)=0.5
Proportion for variance of sensor 3:(52.5)*random number(0.2)=0.5
Proportion for variance of sensor 4:(53)*random number(0.5)=1
Proportion for variance of sensor 5:(54)=1
[0108] A standard deviation may be computed as follows based on the proportion.
Standard deviation of sensor 1:standard deviation=sqrt(4*2)=2.82 [ms]
Standard deviation of sensor 2:standard deviation=sqrt(4*0.5)=1.4 [ms]
Standard deviation of sensor 3:standard deviation=sqrt(4*0.5)=1.4 [ms]
Standard deviation of sensor 4:standard deviation=sqrt(4*1)=2 [ms]
Standard deviation of sensor 5:standard deviation=sqrt(4*1)=2 [ms]
[0109] Therefore, regarding request intervals in the positive sets are as follows.
Request interval of sensor 1:request interval=6 [ms]+2.82 [ms]=8.82 [ms]
Request interval of sensor 2:request interval=6 [ms]+1.4 [ms]=7.4 [ms]
Request interval of sensor 3:request interval=6 [ms]+1.4 [ms]=7.4 [ms]
Request interval of sensor 4:request interval=6 [ms]+2 [ms]=8 [ms]
Request interval of sensor 5:request interval=6 [ms]+2 [ms]=8 [ms]
[0110] Regarding request intervals in the negative sets, using the above result are as follows.
Request interval of sensor 6:request interval=6 [ms]2.82 [ms]=3.18 [ms]
Request interval of sensor 7:request interval=6 [ms]1.4 [ms]=4.6 [ms]
Request interval of sensor 8:request interval=6 [ms]1.4 [ms]=4.6 [ms]
Request interval of sensor 9:request interval=6 [ms]2 [ms]=4 [ms]
Request interval of sensor 10:request interval=6 [ms]2 [ms]=4 [ms]
[0111] A request interval can be defined for each sensor as mentioned above. This is only an example, and other setting methods may be employed.
[0112]
[0113]
[0114]
D.sub.r=D.sub.c/D.sub.p*100(23)
D.sub.r: Data change ratio, D.sub.c: Instantaneous value, and D.sub.p: Previous data in time-series data
[0115] The administration server (CPU) may calculate an average value for each cluster based on information regarding each data change ratio, and set the priority for each cluster according to the average value. For example, if an average data change ratio of a certain cluster is, for example, 500%, the administration server (CPU) may set the priority for acquiring data of the cluster to be high, and set a short request interval so that the administration server acquires specific data of the cluster from the robot.
[0116]
H. Aggregation Function
[0117] In the above-described embodiment, the administration server side performs resource management of the CPU resource which changes a request interval for extracting sensor information stored in the RAM from the robot, but, in the following embodiment, a robot additionally has an aggregation function of aggregating information which is transmitted by the robot in the above-described embodiment.
[0118] In a case where the robot transmits sensor information to the administration server, a large amount of sensor information is transmitted to the administration server in order to manage a plurality of robots. In this case, the administration server measures an amount of the information transmitted from the robots as a throughput, and transmits a control command for aggregating transmission packets from the administration server to the robot in a case where the measured throughput is equal to or more than a predetermined threshold value. The robot having received the control command aggregates information having low priority and transmits the aggregated information to the administration server, and thus an operation load on the administration server operating a plurality of robots can be reduced. If specific information is to be known, sensor information may be transmitted without being aggregated. In this case, the administration server transmits a control command for not aggregating information, to the robot.
[0119]
[0120]
x: Any time-series data 1, y: Any time-series data 2, m: Average of x, and n: Average of y
[0121] The administration server (CPU) computes correlation coefficients of all clusters, and calculates a cluster having the greatest positive correlation coefficient. If the cluster having a high correlation is defined in the request interval table in advance as mentioned above, in a case where specific data of a cluster having a high data change ratio is acquired, specific data of a cluster having a high correlation with the cluster can be acquired. As an example, since a cluster 1 and a cluster 2 have a high correlation therebetween in the table, in a case where a data change ratio of the cluster 1 is very high, and the priority for acquiring sensor information of the cluster is high, the priority of the cluster 2 having the high correlation may also be set to be high.
[0122]
d=(xa)/(25)
d: Mahalanobis distance, a: Average value of time-series data, : Standard deviation, and x: Instantaneous value of time-series data
[0123] The administration server (CPU) calculates the Mahalanobis distance based on the time-series data for each cluster, and sets the priority of a cluster to be high in a case where the Mahalanobis distance of the cluster exceeds a predetermined threshold value. A request interval of the cluster whose priority is set to be high may be set to be short so that the administration server acquires specific data of the cluster from the robot.
I. Effects of Embodiment
[0124] According to the present embodiment, the types of sensors, the number of sensors, and the CPU threshold value of an IoT apparatus are determined according to a state of the apparatus, a request interval for extracting sensor information stored in a RAM of the IoT apparatus is set not to exceed the predetermined CPU threshold value, and thus it is possible to prevent an unstable state of control of the IoT apparatus or communication disconnection due to a deficient resource.
J. Additional Statements
[0125] Although the present disclosure has been described with reference to exemplary embodiments, those skilled in the art will recognize that various changes and modifications may be made in form and detail without departing from the spirit and scope of the claimed subject matter. For example, in the above-mentioned embodiments, in order to easily understand the present invention, the specific configurations are described. However, the present invention does not always provide all of the configurations described above. Also, a part of one configuration example can be replaced with another configuration example, and the configuration of one embodiment can be added with the configuration of another embodiment. Also, in a part of the respective configuration examples, another configuration can be added, deleted, or replaced.
[0126] Also, parts or all of the above-described respective configurations, functions, processors, processing means may be realized, for example, as an integrated circuit, or other hardware. Also, the above respective configurations and functions may be realized by allowing the processor to interpret and execute programs for realizing the respective functions. That is, the respective configurations and functions may be realized by software. The information on the program, table, and file for realizing the respective functions can be stored in a storage device such as a memory, a hard disc, or an SSD (solid state drive), or a storage medium such as an IC card, an SD card, or a DVD.
[0127] Also, the control lines and the information lines necessary for description are illustrated, and all of the control lines and the information lines necessary for products are not illustrated. In fact, it may be conceivable that most of the configurations are connected to each other.