Robot, robot control method, and recording medium

By using the control unit and the storage unit to process the characteristic amount of external stimuli in the robot, the problem of not being able to identify the user in the prior art is solved, and the effect of making the user feel attached without pre-registered data is achieved.

CN115870993BActive Publication Date: 2025-04-25CASIO COMPUTER CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202211154677.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-29
Filing Date
2022-09-21
Publication Date
2025-04-25
Estimated Expiration
2042-09-21

AI Technical Summary

Technical Problem

The existing robotic device cannot identify the user without pre-registered data, resulting in the inability to make the user feel attached.

Method used

By setting a control unit and a storage unit in the robot, the characteristic amount of external stimuli is obtained and saved as a history record, and the similarity to the saved characteristic amount is calculated to control the robot's movement.

Benefits of technology

Even without pre-registered data, the robot can recognize the user and perform close actions, making the user feel attached.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115870993B_ABST
    Figure CN115870993B_ABST
Patent Text Reader

Abstract

The present disclosure proposes a robot, a robot control method, and a recording medium. The robot includes a storage unit and a control unit. The control unit obtains a feature quantity of an external stimulus acting from the outside, namely, an external stimulus feature quantity, stores the obtained external stimulus feature quantity in the storage unit as a historical record, compares the external stimulus feature quantity obtained at a certain time with the external stimulus feature quantity stored in the storage unit to calculate a first similarity, and controls an action based on the calculated first similarity.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a robot, a robot control method, and a recording medium. Background Art

[0002] In the past, various robots have been developed, but in recent years, not only industrial robots but also robots for people's livelihood such as pet robots are being developed. For example, Japanese Patent Publication No. 2001-157985 discloses a robot device that can easily and accurately recognize a user and make the user feel attached.

[0003] The robot device disclosed in Patent Document 1 compares the pattern of the pressure detection signal detected by the pressure sensor with the pre-registered pattern to determine whether the person touching the pressure sensor is the user. Therefore, if the registration pattern is not pre-registered, the user cannot be identified and the user cannot be made to feel attached. Summary of the invention

[0004] Therefore, the present disclosure has been made in view of such circumstances, and an object of the present disclosure is to provide a robot, a robot control method, and a program that can perform actions that make a user feel attached to the robot even if data for identifying the user is not registered in advance.

[0005] One embodiment of the robot according to the present disclosure includes a storage unit and a control unit.

[0006] The control unit obtains a feature quantity of an external stimulus acting from the outside, namely, an external stimulus feature quantity,

[0007] storing the acquired external stimulus feature as a history record in the storage unit,

[0008] The external stimulus feature quantity acquired at a certain timing is compared with the external stimulus feature quantity stored in the storage unit to calculate a first similarity,

[0009] The action is controlled based on the calculated first similarity.

[0010] Effects of the Invention

[0011] According to the present disclosure, even if data for identifying the user is not registered in advance, it is possible to perform an action that makes the user feel attached. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 It is a diagram showing the appearance of a robot involved in the embodiment.

[0013] Figure 2 This is a cross-sectional view of the robot according to the embodiment as seen from the side.

[0014] Figure 3 It is a diagram for explaining a housing of a robot according to an embodiment.

[0015] Figure 4 This is a block diagram showing the functional structure of a robot according to an embodiment.

[0016] Figure 5 It is a diagram for explaining types of postures of the robot according to the embodiment.

[0017] Figure 6 This is a diagram for explaining an example of a voice-based intimacy action according to an embodiment.

[0018] Figure 7 This is a diagram for explaining an example of an intimate action based on a caressing method involved in an embodiment.

[0019] Figure 8 This is a diagram for explaining an example of a sentiment map according to the embodiment.

[0020] Fig. 9 This is a diagram for explaining an example of a character value radar chart according to the embodiment.

[0021] Fig.10 It is a diagram for explaining an example of a growth table involved in the embodiment.

[0022] Fig.11 This is a diagram for explaining an example of an action content table according to the embodiment.

[0023] Fig.12 This is a flowchart of the motion control process involved in the embodiment.

[0024] Fig.13 This is a flowchart of microphone input processing according to an embodiment.

[0025] Fig.14 This is a flowchart of the sound feature parameter calculation process involved in the embodiment.

[0026] Fig.15 This is a flowchart of the similarity determination process with the audio history record according to the embodiment.

[0027] Fig.16 This is a flowchart of touch input processing according to an embodiment.

[0028] Fig.17 This is a flowchart of a similarity determination process with a touch history record according to an embodiment.

[0029] Fig.18 : is a flowchart of the voice response processing involved in the embodiment.

[0030] Fig.19 : is a flowchart of the touch response process involved in the embodiment. DETAILED DESCRIPTION

[0031] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. In addition, the same reference numerals are given to the same or corresponding parts in the drawings.

[0032] (Implementation Method)

[0033] like Figure 1 As shown, the robot 200 according to the embodiment imitates a small animal and is covered with an outer cover 201 having a decorative part 202 imitating eyes and thick fur 203. In addition, the outer cover 201 covers a housing 207 of the robot 200. Figure 2 As shown, the housing 207 of the robot 200 is composed of a head 204 , a connecting portion 205 , and a main body 206 , and the head 204 and the main body 206 are connected by the connecting portion 205 .

[0034] In the following description, when the robot 200 is placed in a manner of lying on a loading surface such as a floor, the direction of the part corresponding to the face of the robot 200 (the part of the head 204 on the side opposite to the main body 206) is defined as "front", the direction of the part corresponding to the buttocks (the part of the main body 206 on the side opposite to the head 204) is defined as "back", the direction of the part in contact with the loading surface is defined as "down", and the opposite direction is defined as "up". In addition, the direction orthogonal to the straight line extending in the front-back direction of the robot 200 and also orthogonal to the straight line extending in the up-down direction is defined as the width direction. Moreover, the right side surface when the direction of the head 204 is viewed from the main body 206 is defined as the right side surface, and the left side surface is defined as the left side surface.

[0035] like Figure 2 As shown in FIG. 2 , the main body 206 contacts a mounting surface such as a floor or a workbench on which the robot 200 is placed via the exterior 201. Figure 2 As shown, the front end of the main body 206 is provided with a motor 221, and the head 204 is connected to the front end of the main body 206 via the connecting portion 205. In addition, the connecting portion 205 is provided with a motor 222. Figure 2 In the embodiment, the motor 221 is disposed in the main body 206 , but it may also be disposed in the connecting portion 205 or in the head 204 .

[0036] The connecting portion 205 connects the main body 206 and the head 204 rotatably (through the motor 221) around the first rotation axis passing through the connecting portion 205 and extending in the front-to-back direction of the main body 206. The motor 221 rotates the head 204 clockwise (right-handed) within the positive rotation angle range (forward rotation) or counterclockwise (left-handed) within the reverse rotation angle range (reverse rotation) relative to the main body 206 around the first rotation axis. In addition, the clockwise direction in this description is the clockwise direction when the head 204 is observed from the main body 206. The maximum value of the angle for twisting the head 204 to the right (right turn) or left (left turn) is arbitrary, but the angle of the head 204 in a state where the head 204 is neither twisted to the right nor to the left is called the twist reference angle.

[0037] In addition, the connecting portion 205 connects the main body 206 and the head 204 so as to be rotatable (through a motor 222) around a second rotation axis passing through the connecting portion 205 and extending in the width direction of the main body 206. The motor 222 rotates the head 204 upward within a forward rotation angle range (forward rotation) or downward within a reverse rotation angle range (reverse rotation) around the second rotation axis. The maximum value of the angle at which the head 204 is rotated upward or downward is arbitrary, but the angle of the head 204 in a state where the head 204 is neither rotated upward nor downward is referred to as the up-down reference angle. When the head 204 is rotated to the up-down reference angle or lower than the up-down reference angle by the up-down rotation around the second rotation axis, it can contact the loading surface such as a floor, a workbench, etc. on which the robot 200 is placed via the exterior 201. In addition, Figure 2 In FIG. 1 , an example is shown in which the first rotation axis and the second rotation axis are orthogonal to each other, but the first rotation axis and the second rotation axis may not be orthogonal to each other.

[0038] In addition, the robot 200 is provided with a touch sensor 211, which can detect when a user touches or taps the robot 200. Figure 2 As shown in FIG. 2 , the head 204 is provided with a touch sensor 211H, which can detect that the user touches or taps the head 204. Figure 2 as well as Figure 3 As shown, touch sensors 211LF and 211LR are respectively provided on the front and back of the left side of the main body 206 , and touch sensors 211RF and 211RR are respectively provided on the front and back of the right side of the main body 206 , which can detect when the user touches or taps the main body 206 .

[0039] In addition, the robot 200 has an acceleration sensor 212 in the main body 206, which can detect the posture (orientation) of the robot 200, or detect that the robot 200 is picked up by the user, changes its orientation, or is thrown. In addition, the robot 200 has a gyro sensor 213 in the main body 206, which can detect that the robot 200 vibrates or rotates.

[0040] The robot 200 also includes a microphone 214 in the main body 206 to detect external sounds. The robot 200 also includes a speaker 231 in the main body 206 to emit a chirping sound or sing a song using the speaker 231 .

[0041] In addition, in the present embodiment, the acceleration sensor 212, the gyro sensor 213, the microphone 214, and the speaker 231 are provided in the main body 206, but all or part of them may be provided in the head 204. In addition, in addition to the acceleration sensor 212, the gyro sensor 213, the microphone 214, and the speaker 231 provided in the main body 206, all or part of these sensors may be provided in the head 204. In addition, the touch sensor 211 is provided in the head 204 and the main body 206, but it may be provided in only one of the head 204 and the main body 206. In addition, they may be provided in multiple numbers.

[0042] Next, the functional structure of the robot 200 will be described. Figure 4 As shown, the robot 200 includes a control unit 110 , a storage unit 120 , a communication unit 130 , a sensor unit 210 , a drive unit 220 , an output unit 230 , and an operation unit 240 .

[0043] The control unit 110 is composed of, for example, a CPU (Central Processing Unit) and executes various processes described below through programs stored in the storage unit 120. In addition, since the control unit 110 corresponds to a multithreading function that executes multiple processes in parallel, various processes described below can be executed in parallel. In addition, the control unit 110 also has a clock function and a timer function, and can count the date and time.

[0044] The storage unit 120 is composed of ROM (Read Only Memory), flash memory, RAM (Random Access Memory), etc. The ROM stores the program executed by the CPU of the control unit 110 and the data required in advance when executing the program. The flash memory is a writable non-volatile memory that stores data that is desired to be saved even after the power is turned off. The RAM stores data generated or changed during program execution. The storage unit 120 stores, for example, the voice buffer, voice history, touch history, emotion data 121, emotion change data 122, growth table 123, etc., which will be described later.

[0045] The communication unit 130 includes a communication module compatible with wireless LAN (Local Area Network), Bluetooth (registered trademark), and the like, and performs data communication with an external device such as a smartphone.

[0046] The sensor unit 210 includes the aforementioned touch sensor 211, acceleration sensor 212, gyro sensor 213, and microphone 214. The control unit 110 obtains the detection values ​​detected by the various sensors provided by the sensor unit 210 as external stimulus data representing the external stimulus acting on the robot 200. In addition, the sensor unit 210 may also include sensors other than the touch sensor 211, acceleration sensor 212, gyro sensor 213, and microphone 214. By increasing the types of sensors provided by the sensor unit 210, the types of external stimuli that the control unit 110 can increase. For example, the sensor unit 210 may also include an image acquisition unit such as a CCD (Charge-Coupled Device) image sensor. In this case, the control unit 110 can recognize the image obtained by the image acquisition unit and determine who the person in the surrounding area is (for example, the breeder, the person who has been taking care of it, an unknown person, etc.).

[0047] The touch sensor 211 detects that an object has been touched. The touch sensor 211 is composed of, for example, a pressure sensor and an electrostatic capacitance sensor. The control unit 110 can obtain the contact strength and contact time based on the detection value from the touch sensor 211, and based on these values, detect external stimuli such as the robot 200 being touched or slapped by the user (for example, refer to Japanese Patent Publication No. 2019-217122). In addition, the control unit 110 can also use sensors other than the touch sensor 211 to detect these external stimuli (for example, refer to Japanese Patent Publication No. 6575637).

[0048] The acceleration sensor 212 detects acceleration in three axes, namely, the front-back direction, the width (left-right) direction, and the up-down direction of the main body 206 of the robot 200. The acceleration sensor 212 detects the gravitational acceleration when the robot 200 is stationary, so the control unit 110 can detect the current posture of the robot 200 based on the gravitational acceleration detected by the acceleration sensor 212. In addition, for example, when the user picks up or throws the robot 200, the acceleration sensor 212 detects the acceleration accompanying the movement of the robot 200 in addition to the gravitational acceleration. Therefore, the control unit 110 can detect the movement of the robot 200 by removing the component of the gravitational acceleration from the detection value detected by the acceleration sensor 212.

[0049] The gyro sensor 213 detects the angular velocity of the three axes of the robot 200. The control unit 110 can determine the vibration state of the robot 200 based on the maximum value of the angular velocity of the three axes.

[0050] In the present embodiment, in the touch input process described later, the control unit 110 determines whether the current posture of the robot 200 is Figure 5 Which of the following is shown: horizontal, turned over, facing up, facing down, or horizontal. Then, based on the judgment result, Figure 5 As shown, any value of 0 to 4 is stored in the storage unit 120 as the value of the variable dir.

[0051] However, when the control unit 110 determines the posture of the robot 200, it is also possible to use the history of the detection value of the acceleration sensor 212 instead of the current detection value of the acceleration sensor 212. In addition, the control unit 110 may determine the posture of the robot 200 by using a recognizer (neural network, etc.) obtained by preparing a plurality of data of the history of the detection value of the acceleration sensor 212 to which the information of the posture of the robot 200 is attached as a correct answer label and performing machine learning. Furthermore, the control unit 110 may determine the posture of the robot 200 by using both the determination result of the recognizer that has performed machine learning and the current detection value of the acceleration sensor 212 (acceleration obtained at the timing of determining the posture).

[0052] In the touch input process described later, the control unit 110 obtains the touch strength of the head based on the detection value of the touch sensor 211H, obtains the touch strength of the left side based on the detection values ​​of the touch sensor 211LF and the touch sensor 211LR, obtains the touch strength of the right side based on the detection values ​​of the touch sensor 211RF and the touch sensor 211RR, and obtains the vibration strength based on the detection value of the gyro sensor 213. In addition, the control unit 110 stores the obtained strengths as the values ​​of the variable touch_Head (touch strength of the head), the variable touch_Left (touch strength of the left side), the variable touch_Right (touch strength of the right side), and the variable gyro_Level (vibration strength) in the storage unit 120.

[0053] In the touch input processing, the control unit 110 combines the various detection values ​​obtained as described above and processes them as touch feature parameters. That is, the touch feature parameters are composed of five-dimensional information of the posture (dir) of the robot 200, the touch strength of the head (touch_Head), the touch strength of the left side (touch_Left), the touch strength of the right side (touch_Right), and the vibration strength (gyro_Level). However, the posture (dir) of the robot 200 when a person holds the robot 200 varies greatly from person to person. On the contrary, the vibration strength (gyro_Level) has a large value jitter even when the same person holds it.

[0054] Therefore, in this embodiment, when determining the similarity of the touch feature parameters, if the postures (dir) are inconsistent, they are determined to be non-similar, so that the influence of the vibration intensity is smaller than the touch intensity. For example, when each touch intensity takes a value greater than 0 and less than M, the vibration intensity is adjusted to take a value greater than 0 and less than M÷A (where A is a real number greater than 1, such as 6).

[0055] Moreover, the touch feature parameters are stored in the storage unit 120 in a first-in-first-out (FIFO: First In First Out) manner according to the number of historical records saved (256 in this embodiment). In this embodiment, the FIFO storing the touch feature parameters is called TFIFO, and the number of touch feature parameters saved in the TFIFO is saved as a variable such as TFIFO_SIZE. That is, the initial value of TFIFO_SIZE is 0, and it increases by 1 each time a new touch feature parameter is stored. Moreover, after increasing to the number of historical records saved, TFIFO_SIZE keeps the number of historical records saved unchanged, and each time a new touch feature parameter is stored in the TFIFO, the oldest touch feature parameter is deleted from the TFIFO. TFIFO stores the historical records of touch feature parameters, and is therefore also called a touch history record.

[0056] return Figure 4 The microphone 214 detects sounds around the robot 200. The control unit 110 can detect, for example, that the user is calling out to the robot 200 or clapping, based on the components of the sounds detected by the microphone 214.

[0057] Specifically, the control unit 110 samples the sound data obtained from the microphone 214 at a predetermined sampling frequency (16,384 Hz in this embodiment) and a quantization bit number (16 bits in this embodiment), and stores the samples in the sound buffer of the storage unit 120. In this embodiment, one sound buffer includes 512 samples of sampled data, and the similarity of the sound is determined by taking 16 consecutive sound buffers as one unit. In addition, in this embodiment, the 16 consecutive sound buffers are represented by an array variable of sound buffer [0] to sound buffer

[15] . The 16 sound buffers store 512 samples × 16 / 16384 Hz = 0.5 seconds of sound data.

[0058] In addition, the control unit 110 saves the sound data obtained from the microphone 214 in the sound buffer as a sound buffer saving thread and executes it in parallel with other processes. In addition, in the present embodiment, in the sound feature parameter calculation process described later, the control unit 110 calculates 3 cepstrum information for 16 sound buffers from the sampled data of 512 samples in one sound buffer. The control unit 110 processes the 48 (=3×16) data obtained as 48-dimensional sound feature parameters.

[0059] The sound feature parameters are also stored in the storage unit 120 in a first-in first-out (FIFO) manner, and the number of history records (e.g., 256) is stored. In this embodiment, the FIFO storing the sound feature parameters is called VFIFO, and the number of sound feature parameters stored in the VFIFO is stored in a variable such as VFIFO_SIZE. The VFIFO stores the history records of the sound feature parameters, and is therefore also called a sound history record.

[0060] return Figure 4The driving unit 220 includes a motor 221 and a motor 222 as movable parts for expressing the movement of the robot 200 (machine), and is driven by the control unit 110. By controlling the driving unit 220 by the control unit 110, the robot 200 can, for example, express movements such as lifting the head 204 (rotating upward around the second rotation axis) and twisting laterally (twisting and rotating to the right or left around the first rotation axis). In addition, the robot 200 can also move, for example, by rotating the head 204 laterally while facing downward. The movement control data for performing these movements is recorded in the storage unit 120, and the movement of the robot 200 is controlled based on the detected external stimuli, the growth value described later, and the like.

[0061] The above is an example of the driving unit 220 , and the driving unit 220 may also include wheels, tracks, arms and legs, etc., by which the robot 200 can be moved in an arbitrary direction or the body can be moved.

[0062] The output unit 230 includes a speaker 231, and the control unit 110 inputs sound data to the output unit 230, thereby outputting the sound from the speaker 231. For example, the control unit 110 inputs the data of the chirping sound of the robot 200 to the output unit 230, thereby the robot 200 emits a simulated chirping sound. The chirping sound data is also recorded in the storage unit 120, and the chirping sound is selected according to the detected external stimulus, the growth value described later, etc. In addition, the output unit 230 composed of the speaker 231 is also called a sound output unit.

[0063] In addition, the output unit 230 may replace the speaker 231, or in addition to the speaker 231, also include a display such as a liquid crystal display, a light emitting unit such as an LED (Light Emitting Diode), etc., to display an image based on the detected external stimulus, the growth value described later, etc. on the display, or to make the LED etc. emit light.

[0064] The operation unit 240 is composed of, for example, operation buttons, a volume knob, etc. The operation unit 240 is an interface for receiving operations from a user (owner, lender), such as power on / off, volume adjustment of output sound, etc. In addition, in order to further enhance the sense of life, the robot 200 may also only have a power switch as the operation unit 240 on the inner side of the housing 201, without having other operation buttons, volume knobs, etc. In this case, it is also possible to use an external smartphone connected via the communication unit 130 to perform operations such as volume adjustment of the robot 200.

[0065] The functional configuration of the robot 200 has been described above. Next, the owner registration function, the call response function, and the intimacy action function, which are characteristic functions of the robot 200, will be described.

[0066] The so-called keeper registration function is a function that, when the robot 200 is repeatedly called for a certain registration time (e.g., 3 minutes) from the initial power-on, the sound characteristic parameter is stored in the storage unit 120 as the keeper's characteristic (registered sound), and the user is notified of the storage by an action (e.g., a joyful action of chirping 5 times). In this embodiment, as the keeper's characteristic, only the sound characteristic parameter is stored in the storage unit 120 as the registered sound, but based on the touch characteristic parameter repeatedly obtained during the registration time, the touch characteristic parameter can also be stored in the storage unit 120 as the keeper's characteristic (registered stroking method information).

[0067] The call response function refers to the following function: if the robot 200 is called repeatedly (after the owner registers or after a certain registration time (for example, 3 minutes) has passed since the initial power-on), regardless of whether the caller is the owner, it will be recognized as being called by someone and will respond to the call (for example, an action such as "What?").

[0068] The approaching action function is a function that identifies the person as a keeper or a person who has been taking care of the robot based on the voice history record and the touch history record, and performs an action (approaching action) different from the action (general action) for other people when the voice characteristic parameters and touch characteristic parameters recently obtained are similar to the calling and stroking methods in the past. If the approaching action is always performed on the keeper or the person who has been taking care of the robot, the action content may become a single pattern, so in this embodiment, the approaching action is performed with a probability corresponding to the growth degree of the robot 200 (the growth value described later).

[0069] Specifically, regarding sound-based approaching actions, e.g. Figure 6 As shown, if the sound feature parameters of the acquired sound have a high degree of similarity with the registered sound, the person calling is identified as "definitely (absolutely) the keeper", and a close action (for example, approaching the keeper with joy) when identified as a definite keeper is performed with a probability of (growth value / 10)×50%, and a general action determined based on the growth value, etc. is performed with a probability of 100-(growth value / 10)×50%.

[0070] In addition, when the person is not identified as "definitely a keeper", if the sound feature parameters of the acquired sound have a high (or median) similarity with the sound history record, the person calling will be identified as "probably a keeper (or possibly a keeper)", and a friendly action (such as a joyful action (or an action such as "What?")) when identified as a probable keeper (or possibly a keeper) will be performed with a probability of (growth value / 10)×50%, and a general action determined based on the growth value, etc. will be performed with a probability of 100-(growth value / 10)×50%.

[0071] Then, if the sound feature parameters of the acquired sound have a low similarity with the sound history record, it is recognized that the person calling is not the breeder, and no intimacy action is performed at all, and general actions determined based on the growth value, etc. are performed with a 100% probability.

[0072] In addition, regarding intimate actions based on stroking methods, e.g. Figure 7 As shown, if the similarity between the acquired touch feature parameters and the touch history records is very high, the person caressing is identified as "definitely (absolutely) the person who has always been taking care of the person", and a close action (for example, a very joyful action) is performed when the person is definitely the person who has always been taking care of the person with a probability of (growth value / 10)×50%, and a general action determined based on the growth value, etc. is performed with a probability of 100-(growth value / 10)×50%.

[0073] In addition, if the similarity between the acquired touch feature parameters and the touch history records is high (or median), the person caressing is identified as "probably the person who has always been cared for (or may be the person who has always been cared for)", and intimate actions (for example, actions of joy (or actions such as "What?")) when identified as the person who has always been cared for (or may be the person who has always been cared for) are performed with a probability of (growth value / 10)×50%, and general actions determined based on the growth value, etc. are performed with a probability of 100-(growth value / 10)×50%.

[0074] Then, if the acquired touch feature parameters have a low similarity with the touch history records, the person caressing is identified as not the one being taken care of all the time, and no intimate actions are performed at all, and general actions determined based on growth values, etc. are performed with 100% probability.

[0075] In addition, in this embodiment, the intimacy action is divided into the action based on sound ( Figure 6 ) and touch-based ( Figure 7), but the definition of the proximity action is not limited to this. For example, the similarity in the sound history record and the similarity in the touch history record can be used to define the proximity action when both similarities are high, the proximity action when only the sound history record similarity is high, and the proximity action when the touch history record similarity is high.

[0076] In addition, Figure 6 as well as Figure 7 In the example, the probability of the close action is always set to less than 100%, but this is just an example. When the similarity with the registered voice, voice history record, or touch history record is high, the close action may be always performed.

[0077] Next, the data stored in the storage unit 120 that are required for determining general actions based on growth values, etc., namely, emotion data 121, emotion change data 122, growth table 123, action content table 124 and growth day data 125 are described in sequence.

[0078] The emotion data 121 is data for causing the robot 200 to have simulated emotions, and is data (X, Y) representing coordinates on the emotion graph 300. Figure 8 As shown, the emotion chart 300 is represented by a two-dimensional coordinate system having an axis of security (anxiety) as the X-axis 311 and an axis of excitement (lack of energy) as the Y-axis 312. The origin 310 (0, 0) on the emotion chart represents the emotion at normal times. In addition, the following emotions are represented: the greater the absolute value of the X-coordinate (X value) is positive, the higher the security is, and the greater the absolute value of the Y-coordinate (Y value) is positive, the higher the excitement is. In addition, the following emotions are represented: the greater the absolute value of the X-coordinate is negative, the higher the security is, and the greater the absolute value of the Y-coordinate is negative, the higher the anxiety is, and the greater the absolute value of the Y-coordinate is negative, the higher the lack of energy is.

[0079] In addition, Figure 8 In the embodiment, the emotion graph 300 is represented by a two-dimensional coordinate system, but the number of dimensions of the emotion graph 300 is arbitrary. The emotion graph 300 may be defined in one dimension, and one value may be set as the emotion data 121. In addition, other axes may be added to define the emotion graph 300 in a three-dimensional or higher coordinate system, and the number of values ​​of the number of dimensions of the emotion graph 300 may be set as the emotion data 121.

[0080] In this embodiment, if Figure 8As shown in the box 301, regarding the size of the initial value of the emotion graph 300, the maximum value of the X value and the minimum value of the Y value are both 100, and the minimum value is both -100. Moreover, during the first period, every time the number of simulated growth days of the robot 200 increases by 1 day, the maximum value and the minimum value of the emotion graph 300 are each expanded by 2. Here, the first period refers to the period of simulated growth of the robot 200, which is a period of 50 days from the simulated birth of the robot 200. In addition, the simulated birth of the robot 200 refers to the first time the user starts the robot 200 after the factory shipment. If the number of growth days is 25 days, then Figure 8 As shown in the box 302, the maximum value of the X value and the Y value are both 150, and the minimum value is -150. Moreover, when the first period (50 days in this example) has passed, the growth of the simulation of the robot 200 ends, as shown in FIG. Figure 8 As shown in the frame 303, the maximum values ​​of the X value and the Y value are both 200, and the minimum values ​​are -200, and the size of the emotion chart 300 is fixed.

[0081] The emotion change data 122 is data for setting the amount of change to increase or decrease the X value and the Y value of the emotion data 121, respectively. In the present embodiment, as the emotion change data 122 corresponding to X of the emotion data 121, there are DXP for increasing the X value and DXM for decreasing the X value, and as the emotion change data 122 corresponding to the Y value of the emotion data 121, there are DYP for increasing the Y value and DYM for decreasing the Y value. That is, the emotion change data 122 is composed of the following four variables, and is data indicating the degree of change of the simulated emotion of the robot 200.

[0082] DXP: ease of feeling (ease of change in the positive direction of the X value in the emotion graph)

[0083] DXM: Ease of becoming anxious (Ease of changing to the negative direction of the X value in the emotion graph)

[0084] DYP: Ease of excitement (ease of change in the positive direction of the Y value in the emotion graph)

[0085] DYM: Ease of becoming powerless (Ease of changing to the negative Y value in the emotion graph)

[0086] In this embodiment, as an example, the initial values ​​of these variables are all set to 10, and are increased to a maximum of 20 by processing the emotion change data in the learning motion control process described later. Through this learning process, the emotion change data 122, that is, the degree of change of the emotion changes, so that the robot 200 has various personalities depending on how the user contacts the robot 200. In other words, the personality of the robot 200 is formed differently by the user's contact method.

[0087] Therefore, in this embodiment, each personality data (personality value) is derived by subtracting 10 from each emotion change data 122. That is, the value obtained by subtracting 10 from DXP, which indicates the ease of feeling at ease, is set as the personality value (cheerful), the value obtained by subtracting 10 from DXM, which indicates the ease of becoming uneasy, is set as the personality value (shy), the value obtained by subtracting 10 from DYP, which indicates the ease of becoming excited, is set as the personality value (active), and the value obtained by subtracting 10 from DYM, which indicates the ease of becoming weak, is set as the personality value (spoiled). Thus, for example, Fig. 9 As shown, the personality value radar chart 400 can be generated by plotting the personality value (cheerful) on axis 411, the personality value (active) on axis 412, the personality value (shy) on axis 413, and the personality value (spoiled) on axis 414.

[0088] Since the initial value of each personality value is 0, the initial personality of the robot 200 is represented by the origin 410 of the personality value radar graph 400. Furthermore, as the robot 200 grows, each personality value changes with 10 as the upper limit according to external stimuli detected by the sensor unit 210 (the way the user touches the robot 200). As in the present embodiment, when the four personality values ​​change from 0 to 10, a personality such as 11 to the fourth power = 14641 can be expressed.

[0089] In this embodiment, the maximum value among the four personality values ​​is used as the growth degree data (growth value) indicating the growth degree of the simulation of the robot 200. Furthermore, the control unit 110 controls so that the action content of the robot 200 changes as the simulation of the robot 200 grows (as the growth value increases). Therefore, the data used by the control unit 110 is the growth table 123.

[0090] like Fig.10 As shown, the growth table 123 records the types of actions performed by the robot 200 based on action triggers such as external stimuli detected by the sensor unit 210, and the probability of selecting each action based on the growth value (hereinafter referred to as "action selection probability"). In addition, the action trigger refers to information such as external stimuli that become an opportunity for the robot 200 to perform certain actions. Moreover, during the period when the growth value is small, the basic action set according to the action trigger is selected regardless of the personality value, and when the growth value increases, the action selection probability is set to select the personality action set according to the personality value. In addition, the action selection probability is set in a manner that the types of basic actions that can be selected increase as the growth value increases.

[0091] For example, suppose the following situation; Fig. 9As shown, the current personality values ​​of robot 200 are personality value (cheerful) 3, personality value (active) 8, personality value (shy) 5, personality value (pampered) 4, and a loud sound is detected by microphone 214. In this case, the growth value becomes the maximum value of the four personality values, that is, 8, and the action trigger becomes "loud sound". Fig.10 In the growth table 123 shown, when referring to the item whose action trigger is "Hearing a loud sound" and whose growth value is 8, it can be seen that the action selection probability is "Basic action 2-0" is 20%, "Basic action 2-1" is 20%, "Basic action 2-2" is 40%, and "Personality action 2-0" is 20%.

[0092] In other words, in this case, the probability of selecting "Basic Action 2-0" is 20%, "Basic Action 2-1" is 20%, "Basic Action 2-2" is 40%, and "Character Action 2-0" is 20%. And, if "Character Action 2-0" is selected, further selection is performed based on the four character values. Fig.11 The robot 200 selects any one of the four character actions shown. Then, the robot 200 performs the action selected here.

[0093] In addition, Fig.10 In the example, the character action selected for each action trigger is set to 1, but as with the basic actions, the types of character actions selected can be increased as the character value increases. Fig.10 Merge in the content Figure 6 as well as Figure 7 The content is set in the action type, including the close action and the growth table specified.

[0094] In addition, the growth table 123 can be defined as a function (growth function) that uses the growth value as an independent variable and returns the action selection probability of each action type for each action trigger. The method is arbitrary and does not necessarily have to be Fig.10 Data in tabular form as shown.

[0095] like Fig.11 As shown, the action content table 124 is a table recording the specific action content of each action type specified by the growth table 123. Among them, regarding character actions, the action content is specified according to each character type. In addition, the action content table 124 is not necessary data. For example, if the growth table 123 is constructed in a manner that the specific action content is directly recorded in the action type item of the growth table 123, the action content table 124 is not necessary.

[0096] The initial value of the growth day data 125 is 1, and is incremented by 1 every time a day passes. The growth day data 125 represents the simulated growth days (days from simulated birth) of the robot 200. In this embodiment, the period of growth days represented by the growth day data 125 is referred to as the second period.

[0097] Next, refer to Fig.12 The flowchart shown in FIG. 1 illustrates the motion control processing performed by the control unit 110 of the robot 200. The motion control processing is a processing in which the control unit 110 controls the motion (motion, chirping sound, etc.) of the robot 200 based on the detection value from the sensor unit 210, etc. When the user turns on the power of the robot 200, the thread that executes the motion control processing starts in parallel with other necessary processing. Through the motion control processing, the drive unit 220 and the output unit 230 (sound output unit) are controlled to express the motion of the robot 200 or output sounds such as chirping sounds.

[0098] First, the control unit 110 initializes various data such as the emotion data 121, the emotion change data 122, and the growth days data 125 (step S101). Various variables used in this embodiment (Big Sound_Flag, TalkSound_Flag, Talk breeder registration_Flag, Talk affirmation_Flag, Talk probably_Flag, Talk maybe_Flag, Talk repeat_Flag, Talk general action_Flag, Touch_Flag, Touch affirmation_Flag, Touch probably_Flag, Touch maybe_Flag, etc.) are also initialized to disabled or 0 in step S101.

[0099] Then, the control unit 110 performs microphone input processing for obtaining external stimulation from the microphone 214 (step S102). The details of the microphone input processing will be described later. Next, the control unit 110 performs touch input processing for obtaining external stimulation from the touch sensor 211 and the acceleration sensor 212 (step S103). The details of the touch input processing will be described later. In addition, in the present embodiment, for easy understanding of the description, the microphone input processing and the touch input processing are described as separate processes, but the process of obtaining external stimulation from various sensors provided in the sensor unit 210 may also be performed as one process (external input processing).

[0100] Then, the control unit 110 determines whether there is an external stimulus detected by the sensor unit 210 (step S104). When there is an external stimulus, BigSound_Flag, TalkSound_Flag or Touch_Flag is enabled through the microphone input process and touch input process described above, so the control unit 110 can make the determination in step S104 based on the values ​​of these flag variables.

[0101] If there is an external stimulus (step S104; Yes), the control unit 110 obtains the emotion change data 122 added to or subtracted from the emotion data 121 based on the external stimulus obtained in the microphone input process and the touch input process (step S105). Specifically, for example, if the touch sensor 211 of the head 204 detects that the head 204 is touched as an external stimulus, the robot 200 obtains a simulated sense of security, so the control unit 110 obtains DXP as the emotion change data 122 added to the X value of the emotion data 121.

[0102] Then, the control unit 110 sets the emotion data 121 based on the emotion change data 122 acquired in step S105 (step S106). Specifically, for example, if DXP is acquired as the emotion change data 122 in step S105, the control unit 110 adds DXP of the emotion change data 122 to the X value of the emotion data 121. However, when the emotion change data 122 is added, if the value (X value, Y value) of the emotion data 121 exceeds the maximum value of the emotion graph 300, the value of the emotion data 121 is set to the maximum value of the emotion graph 300. Moreover, when the emotion change data 122 is subtracted, if the value of the emotion data 121 is less than the minimum value of the emotion graph 300, the value of the emotion data 121 is set to the minimum value of the emotion graph 300.

[0103] In step S105 and step S106, for each external stimulus, it is possible to arbitrarily set what kind of emotion change data 122 is acquired to set the emotion data 121, but here, an example is shown below. In addition, since the X value and the Y value of the emotion data 121 are defined as the maximum value and the minimum value according to the size of the emotion graph 300, when the value exceeds the maximum value of the emotion graph 300 by the following calculation, the maximum value is set, and when the value is less than the minimum value of the emotion graph 300, the minimum value is set.

[0104] The head 204 is touched (reassurance): X = X + DXP

[0105] Head 204 was slapped (uneasy): X = X-DXM

[0106] (These external stimuli can be detected by the touch sensor 211 of the head 204)

[0107] The main body 206 is touched (excited): Y = Y + DYP

[0108] The main body 206 is beaten (becomes powerless): Y = Y-DYM

[0109] (These external stimuli can be detected by the touch sensor 211 of the main body 206)

[0110] Holding your head upward (joy): X = X + DXP and Y = Y + DYP

[0111] Hanging with head down (sad): X = X-DXM and Y = Y-DYM

[0112] (These external stimuli can be detected by the touch sensor 211 and the acceleration sensor 212) Call with a gentle voice (become calm): X = X + DXP and Y = Y-DYM

[0113] Roaring with a loud voice (anxiety): X = X-DXM and Y = Y+DYP

[0114] (These external stimuli can be detected by microphone 214)

[0115] Then, the control unit 110 determines whether there is an external stimulus such as a touch during the touch input process (step S107). Specifically, the control unit 110 determines whether Touch_Flag is enabled. If there is a touch, etc. (step S107; yes), the control unit 110 performs a touch response process (step S108). The details of the touch response process will be described later. Then, the control unit 110 substitutes the disabled into the variable Touch_Flag (step S109) and proceeds to step S119.

[0116] On the other hand, if there is no external stimulus such as touch in the touch input process (step S107; No), the control unit 110 determines whether there is sound as an external stimulus in the microphone input process (step S110). Specifically, it is determined whether TalkSound_Flag is enabled. If there is sound (step S110; Yes), the control unit 110 performs a sound response process (step S111) (step S111). The details of the sound response process will be described later. Then, the control unit 110 substitutes disabled into the variable TalkSound_Flag (step S112) and proceeds to step S119.

[0117] On the other hand, if there is no sound as an external stimulus in the microphone input process (step S110; No), the control unit 110 determines whether there is a loud sound as an external stimulus in the microphone input process (step S113). Specifically, it is sufficient to determine whether BigSound_Flag is enabled. If there is a loud sound (step S113; Yes), the control unit 110 performs an action to respond to the loud sound (step S114). That is, the control unit 110 performs the same action as the external stimulus. Fig.10 The action corresponding to "hearing a loud sound" of the action trigger of the growth table 123 shown in the figure (basic action 2-0, etc.) Then, the control unit 110 substitutes disable into the variable BigSound_Flag (step S115), and proceeds to step S119.

[0118] On the other hand, if there is no loud sound as an external stimulus in the microphone input processing (step S113; No), the control unit 110 performs actions corresponding to other external stimuli (if an action trigger corresponding to the external stimulus obtained through the microphone input processing and touch input processing exists in the growth table 123, then the action corresponding to the action trigger is performed) (step S116) and enters step S119.

[0119] On the other hand, if there is no external stimulation in step S104 (step S104; No), the control unit 110 determines whether a spontaneous action such as a breathing action is performed (step S117). The method of determining whether a spontaneous action is performed is arbitrary, but in this embodiment, the determination of step S117 becomes "yes" every breathing cycle (for example, 2 seconds), and a breathing action is performed.

[0120] If a spontaneous action is performed (step S117; Yes), the control unit 110 executes a spontaneous action (for example, a breathing action) (step S118), and proceeds to step S119.

[0121] If no spontaneous action is performed (step S117; No), the control unit 110 determines whether the date has changed by the clock function (step S119). If the date has not changed (step S119; No), the control unit 110 returns to step S102.

[0122] If the date has changed (step S119; Yes), the control unit 110 determines whether it is in the first period (step S120). If the first period is set to be, for example, 50 days from the simulated birth of the robot 200 (for example, the first activation by the user after purchase), the control unit 110 determines that it is in the first period when the growth day data 125 is 50 or less. If it is not in the first period (step S120; No), the control unit 110 proceeds to step S122.

[0123] If it is in the first period (step S120; yes), the control unit 110 performs learning of the emotion change data 122 and expands the emotion graph (step S121). The learning of the emotion change data 122 refers to the following processing; specifically, in step S106 of the day, if the X value of the emotion data 121 is set to the maximum value of the emotion graph 300 even once, the DXP of the emotion change data 122 is increased by 1, if the Y value of the emotion data 121 is set to the maximum value of the emotion graph 300 even once, the DYP of the emotion change data 122 is increased by 1, if the X value of the emotion data 121 is set to the minimum value of the emotion graph 300 even once, the DXM of the emotion change data 122 is increased by 1, and if the Y value of the emotion data 121 is set to the minimum value of the emotion graph 300 even once, the DYM of the emotion change data 122 is increased by 1, thereby updating the emotion change data 122.

[0124] However, if each value of the emotion change data 122 becomes too large, the amount of change of the emotion data 121 once becomes too large, so each value of the emotion change data 122 is limited to a value below 20, for example, by setting the maximum value. In addition, here, 1 is added to each of the emotion change data 122, but the added value is not limited to 1. For example, the number of times each value of the emotion data 121 is set to the maximum value or the minimum value of the emotion graph 300 may be counted, and when the number is large, the value added to the emotion change data 122 may be increased.

[0125] return Fig.12 In step S121, the enlargement of the emotion graph specifically refers to the process in which the control unit 110 enlarges the maximum value and the minimum value of the emotion graph 300 by only 2. However, the enlarged value "2" is just an example, and the enlargement may be 3 or more, or may be only 1. In addition, the enlarged value may be different for each axis of the emotion graph 300, or for the maximum value and the minimum value.

[0126] Then, the control unit 110 adds 1 to the growth day data 125, initializes the emotion data so that both the X value and the Y value are 0 (step S122), and returns to step S102.

[0127] Next, refer to Fig.13 The microphone input process executed in step S102 of the above-mentioned motion control process will be described.

[0128] First, the control unit 110 substitutes the maximum level of the sampled data entering the sound buffer into the variable ML (step S201). Then, the control unit 110 determines whether the value of the variable ML is greater than BigSoundTh (step S202). In addition, for BigSoundTh, a value (loud threshold) is preset for the robot 200 to perform a startled action for a sound louder than that. If the variable ML is greater than BigSoundTh (step S202; yes), the control unit 110 sets the variable BigSound_Flag indicating that a loud sound has been input to enabled (step S203), ends the microphone input process, and enters step S103 of the action control process.

[0129] On the other hand, if the variable ML is less than BigSoundTh (step S202; No), the control unit 110 determines whether the value of the variable ML is greater than TalkSoundTh. In addition, a value (speech threshold) is preset for TalkSoundTh, below which the robot 200 cannot listen as a speech sound. If the variable ML is less than TalkSoundTh (step S204; No), the control unit 110 ignores the sound in the current sound buffer, ends the microphone input process, and proceeds to step S103 of the motion control process.

[0130] On the other hand, if the variable ML is greater than TalkSoundTh (step S204; yes), the control unit 110 determines whether the number of sound buffers storing sound data is less than the reference number (here, 16) (step S205). If the number of sound buffers is less than the reference number (step S205; yes), the control unit 110 returns to step S205 and waits until the reference number of sound buffers is stored.

[0131] On the other hand, if the number of sound buffers reaches the reference number (step S205; No), the control unit 110 determines whether the sound stored in the sound buffers of the reference number is noise (step S206). If it is a speech sound, the sound with a level greater than TalkSoundTh is generated for a certain time (for example, more than 0.1 seconds), but in the case of noise, it is mostly a single instantaneous sound. Therefore, the control unit 110 can use the properties of such sound to determine whether the sound stored in the sound buffer is noise.

[0132] For example, the control unit 110 first determines whether the maximum level of the sampled data entering each sound buffer is greater than TalkSoundTh for the number of noise determinations at the head of the sound buffers of the reference number (three in this embodiment, namely, sound buffer [0], sound buffer [1], and sound buffer [2]). Then, if there is even one sound buffer whose maximum level is less than TalkSoundTh, it is determined that the sound of the sound buffer stored in the current reference number is noise. If the maximum level of all the sound buffers of the noise determination number (namely, each of sound buffer [0], sound buffer [1], and sound buffer [2]) is greater than TalkSoundTh, it is determined that the sound is not noise.

[0133] Return to Fig.13 If the sound stored in the sound buffer of the benchmark number is noise (step S206; yes), the control unit 110 ignores the sound in the current sound buffer of the benchmark number (judging as there is no external stimulus that can serve as an action trigger), ends the microphone input processing, and enters step S103 of the action control processing.

[0134] On the other hand, if the sound stored in the reference number of sound buffers is not noise (step S206; No), the control unit 110 substitutes the variable TalkSound_Flag indicating that a speech sound has been input into the enabled state (step S207), and performs sound feature parameter calculation processing (step S208). The sound feature parameter calculation processing is a processing for calculating sound feature parameters by calculating the cepstrum based on the sampled data stored in the sound buffer, and the details will be described later.

[0135] Next, the control unit 110 performs a repeated call determination process (step S209). The repeated call determination process is a process of determining whether a call is repeated by comparing the voice characteristic parameters calculated in the voice characteristic parameter calculation process (the voice characteristic parameters obtained at the timing of performing the process) with the corresponding amount of voice history records of the most recent continuous determination storage number (3 in this embodiment), and returning the determination result.

[0136] Specifically, the control unit 110 calculates the distance (L2 norm) between the voice feature parameter obtained at the timing of the processing and the three most recent voice feature parameters in the voice history record. If two or more of the three calculated distances are smaller than VsimTh (pre-set as the voice similarity threshold), it is determined to be a "repeated call". If one or less of the distances are smaller than VsimTh, it is determined not to be a "repeated call". In addition, the voice history record corresponding to the number of recent continuous judgments is also referred to as a continuous judgment feature amount.

[0137] Then, the control unit 110 determines whether the determination result of the repeated call determination process is "repeated call" (step S210). If it is a repeated call (step S210; yes), the control unit 110 determines whether it is a breeder registration (step S211). Specifically, the determination is made within the registration time (for example, within 3 minutes) from the initial power-on of the robot 200, and if the variable Talk breeder registration_Flag is 0, the control unit 110 determines that it is a breeder registration, and if the registration time is exceeded or the variable Talk breeder registration_Flag is not 0, it is determined that it is not a breeder registration.

[0138] If it is a breeder registration (step S211; yes), the control unit 110 substitutes 1 into the variable Talk breeder registration_Flag (step S212) and proceeds to step S214. If it is not a breeder registration (step S211; no), the control unit 110 sets the variable Talk repeat_Flag to enable (step S213) and proceeds to step S214. Then, in step S214, the control unit 110 saves the sound feature parameters calculated in step S208 in the sound history record (VFIFO) in a first-in-first-out manner (step S214). Then, the control unit 110 ends the microphone input processing and proceeds to step S103 of the action control processing.

[0139] On the other hand, if the control unit 110 determines in step S210 that it is not a repeated call (step S210; No), the control unit 110 performs the keeper's voice determination process (step S215). The keeper's voice determination process refers to a process of determining whether it is the keeper's voice by comparing the sound feature parameters calculated in the sound feature parameter calculation process with the sound feature parameters of the sound registered as the keeper (registered sound), and returning the determination result. Specifically, the control unit 110 calculates the distance (L2 norm) between the sound feature parameters calculated in step S208 and the sound feature parameters of the registered sound. If the calculated distance is less than VsimTh (sound similarity threshold), it is determined to be "the keeper's voice", and if the calculated distance is greater than VsimTh, it is determined not to be "the keeper's voice".

[0140] Then, the control unit 110 determines whether the result of the breeder's voice determination process is "breeder's voice" (step S216). If it is the breeder's voice (step S216; yes), the variable Talk_affirmation_Flag indicating that the robot 200 recognizes that the voice is definitely the breeder's voice is substituted into activation (step S217), and the process proceeds to step S214.

[0141] If it is not the breeder's voice (step S216; No), the control unit 110 performs a similarity determination process with the voice history record (step S218). The similarity determination process with the voice history record refers to a process of comparing the voice feature parameters calculated in the voice feature parameter calculation process with the voice history record to obtain a similarity, and returning an integer from 0 to 2 (0 = no similarity, 1 = medium similarity, 2 = high similarity) based on the similarity, and the details will be described later.

[0142] Then, the control unit 110 determines whether the result returned in the similarity determination process with the voice history record is 2 (i.e., the similarity is high) (step S219). If the returned value is 2 (step S219: Yes), the control unit 110 activates the variable TalkProbably_Flag indicating that the robot 200 recognizes that the voice is probably that of the breeder (step S220), and proceeds to step S214.

[0143] If the result returned in the similarity determination process with the voice history record is not 2 (step S219: No), the control unit 110 determines whether the result returned in the similarity determination process with the voice history record is 1 (i.e., the similarity is medium) (step S221). If the returned value is 1 (step S221; Yes), the control unit 110 activates the variable TalkMaybe_Flag indicating that the robot 200 recognizes that the voice may be that of the breeder (step S222), and proceeds to step S214.

[0144] If the result returned in the similarity determination process with the voice history record is not 1 (ie, "not similar") (step S221; No), the control unit 110 substitutes and enables the variable TalkGeneralAction_Flag indicating a general action (step S223), and proceeds to step S214.

[0145] Next, refer to Fig.14 The voice feature parameter calculation process performed in step S208 of the microphone input process will be described.

[0146] First, the control unit 110 initializes the variable i for specifying each element (sound buffer [0] to sound buffer

[15] ) of the sound buffer as an arrangement variable to 0 (step S231). Then, the control unit 110 determines whether the variable i is greater than 16 (step S232). If the variable i is greater than 16 (step S232; yes), the control unit 110 ends the sound feature parameter calculation process and proceeds to step S209 of the microphone input process.

[0147] If the variable i is less than 16 (step S232; No), the control unit 110 performs a fast Fourier transform (FFT) on the 512 samples included in the sound buffer [i] (step S233). Then, the control unit 110 calculates the first 256 amplitude components (spectrum of the sound data) obtained by FFT (step S234). Here, if the amplitude components are stored in variables α[0] to α

[255] , the control unit 110 calculates α (where n is 0 to 255).

[0148] Next, the control unit 110 calculates the natural logarithm of each of the 256 amplitude components (step S235). Here, if the natural logarithm is stored in variables β[0] to β

[255] , the control unit 110 calculates

[0149] β[n]=ln(α[n])

[0150] (where n is 0 to 255).

[0151] Next, the control unit 110 performs FFT again on the calculated 256 natural logarithms (step S236). Then, the control unit 110 calculates the amplitude components of the reference number (three in this embodiment) of components obtained by FFT, excluding the DC component (the first one) from the initial result (step S237). Here, since the cepstrum is obtained, if it is stored in variables Cps[0] to Cps[2], the control unit 110 calculates

[0152]

[0153] (where n is 1 to 3).

[0154] Next, the control unit 110 saves the calculated three cepstra as sound feature parameters (step S238). Here, if the sound feature parameters are stored in the array variable VF[i,n], the control unit 110 executes

[0155] VF[i,n]=Cps[n]

[0156] (where n is 0 to 2.) Then, the control unit 110 adds 1 to the variable i (step S239), and returns to step S232.

[0157] Through the above sound feature parameter calculation process, sound feature parameters (VF[0,0] to VF[15,2]) having 16×3=48 elements are obtained.

[0158] Next, refer to Fig.15The similarity determination process with the voice history executed in step S218 of the microphone input process will be described.

[0159] First, the control unit 110 determines whether the variable VFIFO_Size storing the number of sound history records is greater than the minimum sound reference number (32 in this embodiment) (step S251). If VFIFO_Size is less than the minimum sound reference number (step S251: No), it is impossible to make a sufficient similarity determination, so the control unit 110 returns "0" (indicating no similarity) as a return value, ends the similarity determination process with the sound history records, and enters step S219 of the microphone input process.

[0160] If VFIFO_Size is greater than the minimum sound reference number (step S251; yes), the control unit 110 initializes the variable simCnt for counting the number of sound history records with high similarity, the variable maysimCnt for counting the number of sound history records with medium similarity, and the variable i for specifying each element of the sound history record VFIFO (VFIFO[0] to VFIFO[VFIFO_Size-1]) as an arrangement variable to 0 (step S252).

[0161] Then, the control unit 110 calculates the distance (L2 norm) between the sound feature parameter calculated in step S208 and VFIFO[i], and substitutes it into the variable d[i] (step S253). Then, the control unit 110 determines whether the value of the variable d[i] is less than VSimTh (sound similarity threshold) (step S254). If d[i] is less than VSimTh (step S254: yes), the control unit 110 adds 1 to the variable simCnt (step S255) and proceeds to step S256. If d[i] is greater than VSimTh (step S254: no), proceed to step S256.

[0162] Then, in step S256, the control unit 110 determines whether the value of the variable d[i] is less than VMaySimTh (median similarity threshold of sound). In addition, as VMaySimTh (median similarity threshold of sound), a value larger than VSimTh (median similarity threshold of sound) is preset. If d[i] is less than VMaySimTh (step S256: Yes), the control unit 110 adds 1 to the variable maysimCnt (step S257) and proceeds to step S258. If d[i] is greater than VMaySimTh (step S256: No), the control unit 110 proceeds to step S258.

[0163] In step S258, the control unit 110 adds 1 to the variable i. Then, the control unit 110 determines whether the value of the variable i is smaller than the variable VFIFO_Size (step S259). If the variable i is smaller than VFIFO_Size (step S259; yes), the control unit 110 returns to step S253.

[0164] If the variable i is greater than VFIFO_Size (step S259: No), the control unit 110 determines whether the ratio of the variable simCnt to the variable VFIFO_Size exceeds 20% (step S260). If the ratio of the variable simCnt to the variable VFIFO_Size exceeds 20% (step S260: Yes), the similarity between the sound feature parameters calculated in step S208 and the sound history record is high, so the control unit 110 returns "2" as the return value, ends the similarity determination process with the sound history record, and enters step S219 of the microphone input process.

[0165] On the other hand, the ratio of the variable simCnt to the variable VFIFO_Size is less than 20% (step S260: No), and the control unit 110 determines whether the ratio of the variable maysimCnt to the variable VFIFO_Size exceeds 30% (step S261). If the ratio of the variable maysimCnt to the variable VFIFO_Size exceeds 30% (step S261: Yes), the similarity between the sound feature parameter calculated in step S208 and the sound history record is median, so the control unit 110 returns "1" as the return value, ends the similarity determination process with the sound history record, and enters step S219 of the microphone input process.

[0166] On the other hand, if the ratio of the variable maysimCnt to the variable VFIFO_Size is less than 30% (step S261: No), the sound feature parameters calculated in step S208 are not similar to the sound history record, so the control unit 110 returns "0" as a return value, ends the similarity determination process with the sound history record, and enters step S219 of the microphone input process. In addition, the comparison with "20%" and "30%" in the above determination is only an example, and can be changed together with VSimTh and VMaySimTh as needed.

[0167] Next, refer to Fig.16 The touch input process executed in step S103 of the motion control process will be described.

[0168] First, the control unit 110 obtains detection values ​​detected by each sensor from the touch sensor 211, the acceleration sensor 212, and the gyro sensor 213 (step S301). Then, based on the detection values, the control unit 110 determines whether a touch is detected by the touch sensor 211, whether the acceleration detected by the acceleration sensor 212 has changed, or whether the angular velocity detected by the gyro sensor has changed (step S302).

[0169] If there is a touch or an acceleration change or an angular velocity change (step S302; yes), the control unit 110 sets the variable Touch_Flag to be enabled (step S303) and calculates the touch feature parameters (step S304). As described above, the touch feature parameters are composed of five-dimensional information of the posture (dir) of the robot 200, the touch strength of the head (touch_Head), the touch strength of the left side (touch_Left), the touch strength of the right side (touch_Right), and the vibration strength (gyro_Level).

[0170] Then, the control unit 110 performs a similarity determination process with the touch history record (step S305). The similarity determination process with the touch history record refers to a process of comparing the touch feature parameters calculated in step S304 with the touch history record to obtain the similarity, and returning an integer from 0 to 3 (0 = not similar, 1 = medium similarity, 2 = high similarity, 3 = very high similarity) according to the similarity. The details will be described later. Then, the control unit 110 determines whether the result returned in the similarity determination process with the touch history record is 3 (step S306). If the returned value is 3 (step S306; yes), the control unit 110 substitutes the variable Touch_Flag indicating that the robot 200 recognizes that the touch method (stroking method) is definitely (absolutely) the person who has been taking care of it into activation (step S307), and enters step S313.

[0171] If the value returned in the similarity determination process with the touch history is not 3 (step S306; No), the control unit 110 determines whether the value returned in the similarity determination process with the touch history is 2 (step S308). If the returned value is 2 (step S308: Yes), the control unit 110 substitutes the variable TouchProbably_Flag indicating that the robot 200 recognizes that the touch method (stroking method) is probably the person who has been taking care of it into activation (step S309), and proceeds to step S313.

[0172] If the value returned in the similarity determination process with the touch history is not 2 (step S308: No), the control unit 110 determines whether the value returned in the similarity determination process with the touch history is 1 (step S310). If the returned value is 1 (step S310; Yes), the control unit 110 substitutes the variable TouchMaybe_Flag indicating that the robot 200 recognizes that the touch method (stroking method) may be the person who has been taking care of it into activation (step S311), and proceeds to step S313.

[0173] If the value returned in the similarity determination process with the touch history record is not 1 (step S310; No), the touch feature parameters calculated in step S304 are not similar to the touch history record, so the control unit 110 will enable the variable Touch general action_Flag (step S312) which represents a general action and enter step S313.

[0174] In step S313, the control unit 110 stores the touch characteristic parameters calculated in step S304 in a touch history record (TFIFO) in a first-in-first-out manner (step S313). Then, the control unit 110 ends the touch input process and proceeds to step S104 of the motion control process.

[0175] Next, refer to Fig.17 The similarity determination process with the touch history executed in step S305 of the touch input process will be described.

[0176] First, the control unit 110 determines whether the variable TFIFO_Size storing the storage number of touch history records is greater than the minimum touch reference number (32 in this embodiment) (step S351). If TFIFO_Size is less than the minimum touch reference number (step S351: No), it is impossible to make a sufficient similarity determination, so the control unit 110 returns "0" (indicating no similarity) as a return value, ends the similarity determination process with the touch history records, and enters step S306 of the touch input process.

[0177] If TFIFO_Size is greater than the minimum touch reference number (step S351; yes), the control unit 110 initializes the variable abssimCnt for counting the number of touch history records with very high similarity, the variable simCnt for counting the number of touch history records with high similarity, the variable maysimCnt for counting the number of touch history records with medium similarity, and the variable i for specifying each element of the touch history record TFIFO (TFIFO[0] to TFIFO[TFIFO_Size-1]) as an arrangement variable to 0 (step S352).

[0178] Then, the control unit 110 determines whether the touch feature parameters calculated in step S304 and the information (dir) of the posture of the robot 200 respectively included in TFIFO[i] are consistent (step S353). If they are inconsistent (step S353: No), the control unit 110 proceeds to step S361.

[0179] If the posture (dir) is consistent (step S353: yes), the control unit 110 calculates the distance (L2 norm) between the touch feature parameter calculated in step S304 and TFIFO[i], and substitutes it into the variable d[i] (step S354). Then, the control unit 110 determines whether the value of the variable d[i] is less than TAbsSimTh (touch super-high similarity threshold) (step S355). In addition, as TAbsSimTh (touch super-high similarity threshold), a value smaller than TSimTh (touch similarity threshold) described later is pre-set. If d[i] is less than TAbsSimTh (step S355: yes), the control unit 110 adds 1 to the variable abssimCnt (step S356) and enters step S357. If d[i] is greater than TAbsSimTh (step S355: no), it enters step S357.

[0180] Then, in step S357, the control unit 110 determines whether the value of the variable d[i] is less than TSimTh (preset as the touch similarity threshold). If d[i] is less than TSimTh (step S357: Yes), the control unit 110 adds 1 to the variable simCnt (step S358) and proceeds to step S359. If d[i] is greater than TSimTh (step S357: No), the control unit 110 proceeds to step S359.

[0181] Then, in step S359, the control unit 110 determines whether the value of the variable d[i] is less than TMaySimTh (touch median similarity threshold). In addition, as TMaySimTh (touch median similarity threshold), a value greater than TSimTh (touch similarity threshold) is preset. If d[i] is less than TMaySimTh (step S359; yes), the control unit 110 adds 1 to the variable maysimCnt (step S360) and proceeds to step S361. If d[i] is greater than TMaySimTh (step S359; no), the process proceeds to step S361.

[0182] In step S361, the control unit 110 adds 1 to the variable i. Then, the control unit 110 determines whether the value of the variable i is smaller than the variable TFIFO_Size (step S362). If the variable i is smaller than TFIFO_Size (step S362; Yes), the control unit 110 returns to step S353.

[0183] If the variable i is greater than TFIFO_Size (step S362: No), the control unit 110 determines whether the ratio of the variable abssimCnt to the variable TFIFO_Size exceeds 30% (step S363). If the ratio of the variable abssimCnt to the variable TFIFO_Size exceeds 30% (step S363: Yes), the similarity between the touch feature parameter calculated in step S304 and the touch history record is very high, so the control unit 110 returns "3" as the return value, ends the similarity determination process with the touch history record, and enters step S306 of the touch input process.

[0184] On the other hand, if the ratio of the variable abssimCnt to the variable TFIFO_Size is less than 30% (step S363: No), the control unit 110 determines whether the ratio of the variable simCnt to the variable TFIFO_Size exceeds 30% (step S364). If the ratio of the variable simCnt to the variable TFIFO_Size exceeds 30% (step S364: Yes), the touch feature parameter calculated in step S304 has a high similarity with the touch history record, so the control unit 110 returns "2" as the return value, ends the similarity determination process with the touch history record, and enters step S306 of the touch input process.

[0185] On the other hand, if the ratio of the variable simCnt to the variable TFIFO_Size is less than 30% (step S364; No), the control unit 110 determines whether the ratio of the variable maysimCnt to the variable TFIFO_Size exceeds 30% (step S365). If the ratio of the variable maysimCnt to the variable TFIFO_Size exceeds 30% (step S365: Yes), the similarity between the touch feature parameter calculated in step S304 and the touch history record is median, so the control unit 110 returns "1" as the return value, ends the similarity determination process with the touch history record, and enters step S306 of the touch input process.

[0186] On the other hand, if the ratio of the variable maysimCnt to the variable TFIFO_Size is less than 30% (step S365: No), the touch characteristic parameter calculated in step S304 is not similar to the touch history record, so the control unit 110 returns "0" as the return value, ends the similarity determination process with the touch history record, and enters step S306 of the touch input process. In addition, the comparison with "30%" in the above determination is only an example, and can be changed together with TAbsSimTh, TSimTh and TMaySimTh as needed.

[0187] Next, refer to Fig.18 The voice response process executed in step S111 of the above-mentioned motion control process will be described.

[0188] First, the control unit 110 determines whether the variable Talk breeder registration_Flag is 1 (step S401). If the variable Talk breeder registration_Flag is 1 (step S401; yes), the control unit 110 substitutes 2 into the variable Talk breeder registration_Flag (step S402). Then, the control unit 110 performs the Talk breeder registration process (step S403). The Talk breeder registration process refers to the process of registering the voice feature parameters calculated in step S208 as the voice feature parameters of the breeder's voice in the storage unit 120.

[0189] Then, the control unit 110 performs the Talk feeder registration end action (step S404). The Talk feeder registration end action refers to the action of the robot 200 for notifying the feeder that the feeder's voice is stored, such as the action of chirping five times to perform a joyful action. Then, the voice response process is ended and the process proceeds to step S112 of the action control process.

[0190] On the other hand, if the variable Talk Breeder Registration_Flag is not 1 (step S401: No), the control unit 110 generates a random number greater than 0 and less than 1, and determines whether the generated random number is greater than (growth value ÷ 10) × 0.5 (step S405). If the generated random number is less than (growth value ÷ 10) × 0.5 (step S405: No), the control unit 110 performs a Talk general action (step S406). Talk general actions refer to general actions performed by the robot 200 when being spoken to by a user, specifically, actions that are set as action types for when being spoken to in the growth table 123 as action triggers (in Fig.10 Then, the control unit 110 ends the voice response processing and proceeds to step S112 of the action control processing.

[0191] On the other hand, if the generated random number is greater than (growth value ÷ 10) × 0.5 (step S405: Yes), the control unit 110 determines whether the variable Talk affirmation_Flag is enabled (step S407). If the variable Talk affirmation_Flag is set to enabled (step S407; Yes), the control unit 110 substitutes the disabled variable Talk affirmation_Flag (step S408) and performs the action of Talk affirmation of the breeder (step S409). The action of Talk affirmation of the breeder refers to the approaching action performed when the robot 200 recognizes the person who is calling as "definitely the breeder", for example, the action of wanting to go to the breeder with joy. Then, the control unit 110 ends the voice response processing and enters step S112 of the action control processing.

[0192] On the other hand, if the variable Talk affirmation_Flag is not enabled (step S407; No), the control unit 110 determines whether the variable Talk probably_Flag is enabled (step S410). If the variable Talk probably_Flag is set to enabled (step S410: Yes), the control unit 110 substitutes the disabled variable Talk probably_Flag (step S411) and performs the action of Talk probably the keeper (step S412). The action of Talk probably the keeper refers to the intimacy action performed when the robot 200 recognizes the person calling as "probably the keeper", such as the action of performing an action of joy. Then, the control unit 110 ends the voice response processing and enters step S112 of the action control processing.

[0193] On the other hand, if the variable Talk Perhaps_Flag is not enabled (step S410; No), the control unit 110 determines whether the variable Talk Perhaps_Flag is enabled (step S413). If the variable Talk Perhaps_Flag is set to enabled (step S413; Yes), the control unit 110 substitutes the disabled variable Talk Perhaps_Flag (step S414) and performs the action of Talk Perhaps the keeper (step S415). The action of Talk Perhaps the keeper refers to a close action performed when the robot 200 recognizes the person calling as "maybe the keeper", such as the action of performing an action such as "What?" Then, the control unit 110 ends the voice response processing and enters step S112 of the action control processing.

[0194] On the other hand, if the variable TalkPerhaps_Flag is not enabled (step S413; No), the control unit 110 determines whether the variable TalkRepeat_Flag is enabled (step S416). If the variable TalkRepeat_Flag is set to enabled (step S416; Yes), the control unit 110 substitutes disabled for the variable TalkRepeat_Flag (step S417), and performs the TalkRepeat action (step S418). The so-called TalkRepeat action refers to an action performed when the robot 200 recognizes that "someone is calling", for example, an action of going to the person who is calling in order to do an action such as "What?" Then, the control unit 110 ends the voice response processing and enters step S112 of the action control processing.

[0195] On the other hand, if the variable Talk repeat_Flag is not enabled (step S416; No), the control unit 110 performs a general Talk action (step S406), ends the voice response process, and enters step S112 of the action control process.

[0196] Next, refer to Fig.19 The touch response process executed in step S108 of the above-mentioned motion control process will be described.

[0197] First, the control unit 110 generates a random number greater than 0 and less than 1, and determines whether the generated random number is greater than (growth value ÷ 10) × 0.5 (step S501). If the generated random number is less than (growth value ÷ 10) × 0.5 (step S501; No), the control unit 110 performs a Touch general action (step S502). A Touch general action refers to a general action performed when the robot 200 is touched or hugged by a user, specifically, an action that is set as an action type for the case where the robot 200 is touched or hugged as an action trigger in the growth table 123. Then, the control unit 110 ends the touch response processing and enters step S109 of the action control processing.

[0198] On the other hand, if the generated random number is greater than (growth value ÷ 10) × 0.5 (step S501; yes), the control unit 110 determines whether the variable Touch Affirmation_Flag is enabled (step S503). If the variable Touch Affirmation_Flag is enabled (step S503; yes), the control unit 110 substitutes disabled for the variable Touch Affirmation_Flag (step S504), and performs the action of Touch Affirmation of the person being cared for (step S505). The action of Touch Affirmation of the person being cared for refers to an intimate action performed when the robot 200 recognizes the person being caressed as "definitely the person who is caring", such as an action of performing a very joyful action. Then, the control unit 110 ends the touch response processing and enters step S109 of the action control processing.

[0199] On the other hand, if the variable Touch affirmation_Flag is not enabled (step S503; no), the control unit 110 determines whether the variable Touch probably_Flag is enabled (step S506). If the variable Touch probably_Flag is enabled (step S506; yes), the control unit 110 substitutes the disabled into the variable Touch probably_Flag (step S507), and performs the action of Touch probably the person being cared for (step S508). The action of Touch probably the person being cared for refers to the intimate action performed when the robot 200 recognizes the person being caressed as "probably the person who has been cared for", such as the action of performing a joyful action. Then, the control unit 110 ends the touch response processing and enters step S109 of the action control processing.

[0200] On the other hand, if the variable Touch Perhaps_Flag is not enabled (step S506; No), the control unit 110 determines whether the variable Touch Perhaps_Flag is enabled (step S509). If the variable Touch Perhaps_Flag is enabled (step S509; Yes), the control unit 110 will disable the variable Touch Perhaps_Flag (step S510) and perform the action of Touch Perhaps the person being cared for (step S511). The action of Touch Perhaps the person being cared for refers to an intimate action performed when the robot 200 recognizes the person being caressed as "perhaps the person who has been caring for", such as the action of performing an action such as "What?" Then, the control unit 110 ends the touch response processing and enters step S109 of the action control processing.

[0201] On the other hand, if the variable TouchPerhaps_Flag is not enabled (step S509; No), the control unit 110 performs a Touch general action (step S502), ends the touch response process, and enters step S109 of the action control process.

[0202] In addition, in the above-mentioned motion control process, only the object of external stimulation of the owner registration function and the call response function is set to sound, but this is just an example. When the robot 200 is repeatedly touched for a certain registration time (for example, 3 minutes) from the initial power-on, the control unit 110 can also store the touch feature parameter as the owner's feature (as registered touch method information) in the storage unit 120.

[0203] In addition, when the robot 200 is repeatedly touched (stroked, hugged) in the same pattern (after the owner is registered or after a certain registration time (for example, 3 minutes) has passed since the power was initially turned on), it may recognize that it is being touched by someone, regardless of whether the person touching is the owner, and perform an action in response to the contact (for example, making a coquettish chirping sound).

[0204] Through the motion control processing described above, the control unit 110 obtains external stimulus feature quantities (sound feature parameters and touch feature parameters), stores the obtained external stimulus feature quantities as external stimulus history records (sound history records and touch history records) in the storage unit 120, calculates the distance (first similarity) between the external stimulus feature quantities obtained at a certain timing and the external stimulus feature quantities stored in the storage unit 120, and controls the motion of the robot 200 based on the calculated first similarity. Therefore, even if the owner or the like is not registered, as long as the feature quantities of the calling method and the stroking method are similar to the external stimulus feature quantities stored in the storage unit 120 as history records, the robot 200 can recognize that it is probably the owner and perform an intimate action, which can make the user feel attached.

[0205] Furthermore, even if the user does not perform a special operation, the control unit 110 can use the sensor unit 210 to obtain the repeated calling and stroking patterns performed within a certain registration time after the initial power-on as the voice and stroking (specific stimulation) of the owner (specific user), obtain the specific stimulation feature quantity (registered voice, registered stroking person information) from the obtained specific stimulation (sound, stroking pattern) and store it in the storage unit 120. Then, the distance (second similarity) between the external stimulation feature quantity obtained at a certain timing and the specific stimulation feature quantity stored in the storage unit 120 is calculated, and the action of the robot 200 is controlled based on the calculated second similarity. Therefore, even if the user does not consciously register the owner, etc., if the feature quantity of the calling pattern and stroking pattern is similar to the specific stimulation feature quantity stored in the storage unit 120, the robot 200 can recognize that it is definitely the owner and perform an intimate action, which can make the user feel attached.

[0206] Furthermore, regardless of whether the voice or stroking method of a specific user such as the user is stored in the storage unit 120 as a specific stimulus feature quantity, the control unit 110 obtains the external stimulus feature quantity of the number of consecutive determinations stored, i.e., the continuous determination feature quantity, based on the external stimulus history record, calculates the distance (third similarity) between the external stimulus feature quantity obtained at a certain timing and the continuous determination feature quantity, and controls the action of the robot 200 based on the calculated third similarity. Therefore, even without registering a breeder, the robot 200 can perform an action in response to the call by repeatedly calling the user, and can make the user feel attached.

[0207] In addition, the control unit 110 performs two FFTs on the sound data obtained as external stimulation and calculates a reference number (3) of cepstra as sound feature parameters. Therefore, it is possible to obtain sound feature parameters that can identify the owner with relatively high accuracy regardless of the small amount of calculation.

[0208] Furthermore, the control unit 110 acquires acceleration and a plurality of contact pressures as external stimuli, and thus can acquire touch feature parameters that are a combination of the orientation (posture) and the stroking method when the robot 200 is held.

[0209] Furthermore, the control unit 110 can improve the accuracy of determining the orientation (posture) of the robot 200 by using a recognizer that has undergone machine learning.

[0210] (Variation Example)

[0211] In addition, the present disclosure is not limited to the above-mentioned embodiments, and various modifications and applications are possible. For example, the intimacy action can also be changed according to the growth value and personality in the same way as the general action.

[0212] In addition, the actions of the robot 200 are not limited to the actions of the drive unit 220 and the output of the sound data. When the output unit 230 of the robot 200 includes an LED, the control unit 110 may control the color and brightness of the LED to be lit as the action of the robot 200. The controlled unit controlled by the control unit 110 may include at least one of the drive unit 220 and the output unit 230. The output unit 230 may be a sound output unit that only outputs sound, or may be a light output unit that only outputs light through an LED or the like.

[0213] In addition, the structure of the emotion graph 300, the emotion data 121, the emotion change data 122, the personality data, the growth value, etc. in the above embodiment are only examples. For example, the growth value may be simply a value obtained by dividing the growth day data 125 by a certain number (if it exceeds 10, it is always set to 10).

[0214] In addition, in the above-mentioned embodiment, the control unit 110 for controlling the robot 200 is built into the robot 200, but the control unit 110 for controlling the robot 200 does not necessarily need to be built into the robot 200. For example, a control device (not shown) having a control unit, a storage unit, and a communication unit may also be configured as a device (such as a server) separate from the robot 200. In this modification, the communication unit 130 of the robot 200 and the communication unit of the control device are configured to be able to send and receive data to each other. Moreover, the control unit of the control device obtains the external stimulus detected by the sensor unit 210 or controls the drive unit 220 and the output unit 230 via the communication unit of the control device and the communication unit 130 of the robot 200.

[0215] In the case where the control device and the robot 200 are configured as separate devices, the robot 200 may be controlled by the control unit 110 as necessary. For example, simple actions may be controlled by the control unit 110, and complex actions may be controlled by the control unit of the control device via the communication unit 130.

[0216] In the above-mentioned embodiment, the action program executed by the CPU of the control unit 110 is pre-stored in the ROM of the storage unit 120. However, the present disclosure is not limited to this, and the action program for executing the above-mentioned various processes may be installed in an existing general-purpose computer, etc., thereby functioning as a device equivalent to the control unit 110 and the storage unit 120 of the robot 200 involved in the above-mentioned embodiment.

[0217] Such a program may be provided in any method. For example, it may be stored in a computer-readable recording medium (floppy disk, CD (Compact Disc)-ROM, DVD (Digital Versatile Disc)-ROM, MO (Magneto-Optical Disc), memory card, USB memory, etc.) for distribution, or it may be provided by storing the program in a storage device on a network such as the Internet and downloading it.

[0218] In addition, when the above-mentioned processing is performed by sharing the OS (Operating System) and the application program, or by the OS and the application program in collaboration, only the application program may be stored in a recording medium or a storage device. In addition, the program may be superimposed on a carrier and distributed via a network. For example, the above-mentioned program may be announced on a bulletin board (Bulletin Board System: BBS) on the network and distributed via the network. Moreover, it may be configured so that the program is started and executed in the same manner as other applications under the control of the OS, thereby enabling the above-mentioned processing to be performed.

[0219] In addition, the control unit 110 may be composed of any single processor such as a single processor, a multi-processor, a multi-core processor, or a combination of any of these processors with processing circuits such as an ASIC (Application Specific Integrated Circuit) and an FPGA (Field-Programmable Gate Array).

[0220] The present disclosure can be implemented in various embodiments and variations without departing from the broad spirit and scope of the present disclosure. In addition, the aforementioned embodiments are used to illustrate the embodiments of the present disclosure and do not limit the scope of the present disclosure. That is, the scope of the present disclosure is not represented by the embodiments but by the attached claims. Moreover, various variations implemented within the scope of the attached claims and their equivalents are considered to be within the scope of the present disclosure.

Claims

1. A robot, characterized in that: comprising a storage unit and at least one control unit, The control unit obtains a feature quantity of an external stimulus acting from the outside, namely, an external stimulus feature quantity, The acquired external stimulus feature quantity is stored as a history record in the storage unit in a first-in-first-out manner until the history record storage number reaches the value; The external stimulus feature quantity acquired at a certain timing is compared with the external stimulus feature quantity stored in the storage unit to calculate a first similarity, The external stimulus feature quantities whose continuous determination storage number is less than the historical record storage number are obtained from the new external stimulus feature quantity among the external stimulus feature quantities stored in the storage unit, that is, the continuous determination feature quantity; The third similarity is calculated by comparing the external stimulus feature quantity acquired at a certain timing with the acquired continuous determination feature quantity, The action is controlled based on the calculated first similarity and the third similarity.

2. The robot according to claim 1, wherein: The control unit obtains a characteristic amount of a specific stimulus, that is, a specific stimulus characteristic amount, the specific stimulus being the external stimulus from a specific user, storing the acquired specific stimulus feature in the storage unit, The external stimulus feature quantity acquired at a certain timing is compared with the specific stimulus feature quantity stored in the storage unit to calculate a second similarity, The action is controlled based on the calculated second similarity.

3. The robot according to claim 1 or 2, wherein: The control unit acquires sound data as the external stimulus.

4. The robot according to claim 3, wherein: The control unit performs the following operations: Performing Fourier transform on the sound data to obtain a frequency spectrum, A part of the cepstrum obtained by Fourier transforming the obtained frequency spectrum is obtained as the external stimulation feature amount.

5. The robot according to claim 1 or 2, wherein: The control unit obtains acceleration and a plurality of contact pressures as the external stimulus.

6. The robot according to claim 5, wherein: The control unit performs the following operations: determining the orientation of the robot based on the acceleration, The external stimulus feature amount is acquired based on the determined direction and the plurality of contact pressures.

7. The robot according to claim 6, wherein: The control unit performs the following operations: The orientation of the robot is determined based on the orientation of the robot obtained by the recognizer that has performed machine learning based on the acceleration history and the acceleration acquired at a certain timing.

8. A robot control method is a robot motion control method, characterized in that: The characteristic quantity of the external stimulus acting from the outside, namely the external stimulus characteristic quantity, is obtained. The acquired external stimulus feature quantity is stored as a history record in a storage unit in a first-in-first-out manner until the history record storage number reaches the value; The external stimulus feature quantity acquired at a certain timing is compared with the external stimulus feature quantity stored in the storage unit to calculate a first similarity, The external stimulus feature quantities whose continuous determination storage number is less than the historical record storage number are obtained from the new external stimulus feature quantity among the external stimulus feature quantities stored in the storage unit, that is, the continuous determination feature quantity; The third similarity is calculated by comparing the external stimulus feature quantity acquired at a certain timing with the acquired continuous determination feature quantity, The action is controlled based on the calculated first similarity and the third similarity.

9. A recording medium, which is a recording medium readable by a computer provided in a robot, and which records a program, wherein the program causes the computer to execute the following processing: The characteristic quantity of the external stimulus acting from the outside, namely the external stimulus characteristic quantity, is obtained. The acquired external stimulus feature quantity is stored as a history record in a storage unit in a first-in-first-out manner until the history record storage number reaches the value; The external stimulus feature quantity acquired at a certain timing is compared with the external stimulus feature quantity stored in the storage unit to calculate a first similarity, The external stimulus feature quantities whose continuous determination storage number is less than the historical record storage number are obtained from the new external stimulus feature quantity among the external stimulus feature quantities stored in the storage unit, that is, the continuous determination feature quantity; The third similarity is calculated by comparing the external stimulus feature quantity acquired at a certain timing with the acquired continuous determination feature quantity, The action is controlled based on the calculated first similarity and the third similarity.

Citation Information

Patent Citations

  • User discriminating device, user discriminating method, and robot device

    JP2001157985A

  • Robot, method for controlling robot and program

    JP2019217122A

  • Identification device, robot, identification method, and storage medium

    US20200110968A1

  • Robot and control method for same

    WO2020230928A1

  • Information processing device, information processing method, and program

    WO2021053949A1