Control device, robot control method, and program

The robot system uses a memory and control unit to analyze external stimulus features, enabling it to recognize and interact with users without prior registration, thus improving user attachment and interaction.

JP2025015555AActive Publication Date: 2025-01-30CASIO COMPUTER CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024194200
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-11-06
Publication Date
2025-01-30
Estimated Expiration
2041-09-29

AI Technical Summary

Technical Problem

Existing robot systems struggle to accurately identify and attach to users without pre-registered data, limiting their ability to interact effectively.

Method used

The robot is equipped with a memory and control unit that captures external stimulus features, such as audio and touch inputs, and calculates similarities to control operations based on these features, allowing it to recognize and attach to users without prior registration.

Benefits of technology

Enables the robot to identify and interact with users based on learned behavior patterns, even without pre-registered data, enhancing user attachment and interaction capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025015555000001_ABST
    Figure 2025015555000001_ABST
Patent Text Reader

Abstract

To perform operation for which a user feels affection even when data for identifying the user is not registered in advance.SOLUTION: A robot 200 includes a storage unit 120 and a control unit 110. The control unit 110 acquires an external stimulation feature amount being a feature amount of external stimulation applied from the outside, stores the acquired external stimulation feature amount in the storage unit 120 as history, calculates a first similarity by comparing the external stimulation feature amount acquired at a certain timing and the external stimulation feature amount stored in the storage unit 120, and controls operation on the basis of the calculated first similarity.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a robot, a robot control method, and a program. [Background technology]

[0002] Various robots have been developed in the past, and in recent years, development of not only industrial robots but also consumer robots such as pet robots has progressed. For example, Patent Document 1 discloses a robot device that can easily and accurately identify a user and make the user feel attached to the robot. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2001-157985 A Summary of the Invention [Problem to be solved by the invention]

[0004] The robot device disclosed in Patent Document 1 compares the pattern of the pressure detection signal detected by the pressure sensor with a pre-registered pattern to determine whether or not the person who stroked the pressure sensor is the user. Therefore, if the pre-registered pattern is not registered, the robot device cannot identify the user, and the user cannot feel attached to the robot.

[0005] The present invention has been made in consideration of the above circumstances, and aims to provide a robot, a robot control method, and a program that can perform actions that will make a user feel attached to the robot, even if data for identifying the user has not been registered in advance. [Means for solving the problem]

[0006] In order to achieve the above object, one aspect of the robot according to the present invention comprises: A storage unit and a control unit are provided, The control unit is Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in the storage unit; Calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; An operation is controlled based on the calculated first similarity. Effect of the Invention

[0007] According to the present invention, even if data for identifying a user is not registered in advance, the robot can perform an operation that the user will find endearing. [Brief description of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram showing an external appearance of a robot according to an embodiment. [Diagram 2] 1 is a cross-sectional view of a robot according to an embodiment, as viewed from the side. [Diagram 3] FIG. 2 is a diagram illustrating a housing of a robot according to an embodiment. [Figure 4] 1 is a block diagram showing a functional configuration of a robot according to an embodiment. [Diagram 5] 1A to 1C are diagrams illustrating types of postures of a robot according to an embodiment. [Figure 6] 11A and 11B are diagrams illustrating an example of a familiarization operation by voice according to the embodiment. [Figure 7] 11A to 11C are diagrams illustrating an example of a tame behavior caused by stroking according to the embodiment. [Figure 8] FIG. 2 is a diagram illustrating an example of an emotion map according to the embodiment. [Figure 9] FIG. 13 is a diagram illustrating an example of a personality value radar chart according to the embodiment. [Figure 10] FIG. 11 is a diagram illustrating an example of a growth table according to the embodiment. [Figure 11] FIG. 11 is a diagram illustrating an example of an operation content table according to the embodiment. [Figure 12] 11 is a flowchart of an operation control process according to the embodiment. [Figure 13] 11 is a flowchart of a microphone input process according to the embodiment. [Figure 14] 11 is a flowchart of a voice feature parameter calculation process according to the embodiment. [Figure 15] 11 is a flowchart of a process for determining a similarity with a voice history according to the embodiment. [Figure 16] 11 is a flowchart of a touch input process according to the embodiment. [Figure 17] 11 is a flowchart of a process for determining a similarity with a touch history according to the embodiment. [Figure 18] 4 is a flowchart of a voice response process according to the embodiment. [Figure 19] 11 is a flowchart of a touch response process according to the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals.

[0010] (Embodiment) As shown in Fig. 1, the robot 200 according to the embodiment is a pet robot modeled after a small animal, and is covered with an exterior 201 equipped with decorative parts 202 modeled after eyes and bushy fur 203. A housing 207 of the robot 200 is stored inside the exterior 201. As shown in Fig. 2, the housing 207 of the robot 200 is composed of a head 204, a connecting part 205, and a body part 206, and the head 204 and the body part 206 are connected by the connecting part 205.

[0011] In the following description, it is assumed that the robot 200 is placed normally (in the normal orientation) on a placement surface such as a floor, and the direction of the part of the robot 200 that corresponds to the face (the part of the head 204 opposite the torso 206) is referred to as the front, and the direction of the part that corresponds to the buttocks (the part of the torso 206 opposite the head 204) is referred to as the back. In addition, the direction of the part that contacts the placement surface when the robot 200 is placed normally on the placement surface is referred to as the down, and the opposite direction is referred to as the up. The direction that is perpendicular to a line extending in the front-to-back direction of the robot 200 and also perpendicular to a line extending in the up-down direction is referred to as the width direction. The right side when looking from the torso 206 toward the head 204 is referred to as the right side, and the left side is referred to as the left side.

[0012] As shown in Fig. 2, the body 206 extends in the front-rear direction. The body 206 comes into contact with a support surface, such as a floor or a table, on which the robot 200 is placed, via the exterior 201. As shown in Fig. 2, a twist motor 221 is provided at the front end of the body 206, and the head 204 is connected to the front end of the body 206 via a connecting part 205. The connecting part 205 is provided with an up-down motor 222. Although the twist motor 221 is provided in the body 206 in Fig. 2, it may be provided in the connecting part 205 or in the head 204.

[0013] The connecting part 205 connects the body part 206 and the head 204 to be rotatable (by the twist motor 221) about a first rotation axis that passes through the connecting part 205 and extends in the front-rear direction of the body part 206. The twist motor 221 rotates the head 204 clockwise (right-handed) around the first rotation axis within a forward rotation angle range, and rotates the head 204 counterclockwise (left-handed) within a reverse rotation angle range, relative to the body part 206. Note that the clockwise direction in this description refers to the clockwise direction when the head 204 is viewed from the body part 206. The maximum angle at which the head 204 is twisted to the right (right-handed) or left (left-handed) is arbitrary, but the angle of the head 204 when the head 204 is not twisted to the right or left is called the twist reference angle.

[0014] Furthermore, the connecting part 205 connects the body part 206 and the head 204 so as to be rotatable (by the vertical motor 222) about a second rotation axis that passes through the connecting part 205 and extends in the width direction of the body part 206. The vertical motor 222 rotates the head 204 upward (forward rotation) within a forward rotation angle range about the second rotation axis, and rotates it downward (reverse rotation) within a reverse rotation angle range. The maximum angle of the upward or downward rotation is arbitrary, but the angle of the head 204 in a state where the head 204 is not rotated upward or downward is called the vertical reference angle. When the head 204 is rotated to the vertical reference angle or below the vertical reference angle by the vertical rotation about the second rotation axis, the head 204 can come into contact with the placement surface, such as the floor or table on which the robot 200 is placed, via the exterior 201. Although FIG. 2 shows an example in which the first rotation axis and the second rotation axis are perpendicular to each other, the first and second rotation axes do not have to be perpendicular to each other.

[0015] The robot 200 also includes a touch sensor 211, and can detect when the user has stroked or hit the robot 200. More specifically, as shown in Fig. 2, the head 204 is provided with a touch sensor 211H, and can detect when the user has stroked or hit the head 204. As shown in Figs. 2 and 3, the body 206 includes touch sensors 211LF and 211LR at the front and rear of the left side surface, respectively, and touch sensors 211RF and 211RR at the front and rear of the right side surface, respectively, so that it can detect when the body 206 has been stroked or hit by the user.

[0016] The robot 200 also includes an acceleration sensor 212 on the torso 206, which can detect the posture (direction) of the robot 200 and detect when the robot 200 is lifted up, turned around, or thrown by a user. The robot 200 also includes a gyro sensor 213 on the torso 206, which can detect when the robot 200 is vibrating or rotating.

[0017] The robot 200 also includes a microphone 214 on the body 206 and can detect external sounds. The robot 200 also includes a speaker 231 on the body 206 and can use the speaker 231 to make sounds and sing.

[0018] In this embodiment, the acceleration sensor 212, the gyro sensor 213, the microphone 214, and the speaker 231 are provided in the body 206, but all or some of these may be provided in the head 204. In addition to the acceleration sensor 212, the gyro sensor 213, the microphone 214, and the speaker 231 provided in the body 206, all or some of these may also be provided in the head 204. In addition, the touch sensor 211 is provided in each of the head 204 and the body 206, but it may be provided in only one of the head 204 or the body 206. Furthermore, a plurality of each of these may be provided.

[0019] Next, a description will be given of the functional configuration of the robot 200. 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, as shown in FIG.

[0020] The control unit 110 is composed of, for example, a CPU (Central Processing Unit) and executes various processes described below according to programs stored in the storage unit 120. Note that the control unit 110 supports a multi-thread function that executes multiple processes in parallel, and therefore can execute various processes described below in parallel. The control unit 110 also has a clock function and a timer function, and can measure the date and time, etc.

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

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

[0023] The sensor unit 210 includes the touch sensor 211, the acceleration sensor 212, the gyro sensor 213, and the microphone 214 described above. The control unit 110 acquires detection values ​​detected by the various sensors included in the sensor unit 210 as external stimulus data representing external stimuli acting on the robot 200. The sensor unit 210 may include sensors other than the touch sensor 211, the acceleration sensor 212, the gyro sensor 213, and the microphone 214. By increasing the types of sensors included in the sensor unit 210, the types of external stimuli that the control unit 110 can acquire can be increased. For example, the sensor unit 210 may 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 acquired by the image acquisition unit and determine who is in the vicinity (for example, the owner, the person who always takes care of the robot, a stranger, etc.).

[0024] The touch sensor 211 detects that some object has come into contact with the touch sensor 211. The touch sensor 211 is configured by, for example, a pressure sensor or a capacitance sensor. The control unit 110 acquires the contact strength and contact time based on the detection value from the touch sensor 211, and can detect an external stimulus such as the robot 200 being stroked or hit by a user based on these values ​​(see, for example, Japanese Patent Publication No. 2019-217122). Note that the control unit 110 may detect these external stimuli with a sensor other than the touch sensor 211 (see, for example, Japanese Patent Publication No. 6575637).

[0025] The acceleration sensor 212 detects acceleration in three axial directions consisting of the front-rear direction, width (left-right) direction, and up-down direction of the body 206 of the robot 200. The acceleration sensor 212 detects 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. Also, for example, when the user lifts or throws the robot 200, the acceleration sensor 212 detects 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 gravitational acceleration component from the detection value detected by the acceleration sensor 212.

[0026] The gyro sensor 213 detects the three-axis angular velocities of the robot 200. The control unit 110 can determine the vibration state of the robot 200 from the maximum value of the three-axis angular velocities.

[0027] In this embodiment, in a touch input process described later, the control unit 110 determines whether the current posture of the robot 200 is horizontal, upside down, facing upward, facing downward, or facing sideways, as shown in Fig. 5, based on the gravitational acceleration detected by the acceleration sensor 212. Then, depending on the determination result, one of the values ​​0 to 4 is stored in the storage unit 120 as the value of the variable dir, as shown in Fig. 5.

[0028] However, when the control unit 110 determines the posture of the robot 200, it may use not only the current detection value of the acceleration sensor 212 but also the history of detection values ​​of the acceleration sensor 212. Also, the control unit 110 may determine the posture of the robot 200 using a classifier (such as a neural network) that has been machine-learned using a large amount of data on the history of detection values ​​of the acceleration sensor 212 to which information on the posture of the robot 200 has been added as a correct answer label. Furthermore, the control unit 110 may determine the posture of the robot 200 using both the determination result by the machine-learned classifier and the current detection value of the acceleration sensor 212 (acceleration acquired at the timing of determining the posture).

[0029] In addition, in a 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, the touch strength of the left side based on the detection values ​​of the touch sensors 211LF and 211LR, the touch strength of the right side based on the detection values ​​of the touch sensors 211RF and 211RR, and the vibration strength based on the detection value of the gyro sensor 213. Then, the control unit 110 stores the obtained strengths in the storage unit 120 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).

[0030] In the touch input process, the control unit 110 integrates the various detection values ​​acquired as described above and handles them as touch characteristic parameters. That is, the touch characteristic parameters are composed of five-dimensional information including 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, there are large individual differences in the posture (dir) of the robot 200 when the robot 200 is held by different people. Conversely, there is a large variation in the value of the vibration strength (gyro_Level) even when the same person holds the robot 200.

[0031] Therefore, in this embodiment, when determining the similarity of touch feature parameters, if the poses (dir) do not match, they are determined to be dissimilar, and the influence of the vibration strength is made smaller than that of the touch strength. For example, when each touch strength is a value between 0 and M, the vibration strength is adjusted to be a value between 0 and M÷A (where A is a real number greater than 1, e.g., 6).

[0032] The touch feature parameters are stored in the storage unit 120 in a first-in first-out (FIFO) manner up to the number of touch feature parameters to be saved (256 in this embodiment). In this embodiment, the FIFO for storing the touch feature parameters is called TFIFO, and the number of touch feature parameters saved in TFIFO is stored in a variable called TFIFO_SIZE. That is, the initial value of TFIFO_SIZE is 0, and it is increased by 1 every time a new touch feature parameter is stored. After it is increased to the number of touch feature parameters to be saved, TFIFO_SIZE remains constant as the number of touch feature parameters to be saved, and every time a new touch feature parameter is stored in TFIFO, the oldest touch feature parameter is deleted from TFIFO. TFIFO is also called touch history, since it stores the history of touch feature parameters.

[0033] 4, the microphone 214 detects sounds around the robot 200. Based on the components of the sound detected by the microphone 214, the control unit 110 can detect, for example, whether the user is calling out to the robot 200 or clapping his hands.

[0034] Specifically, the control unit 110 samples the sound data acquired from the microphone 214 at a specified sampling frequency (16,384 Hz in this embodiment) and quantization bit rate (16 bits in this embodiment), and stores the sampled data in an audio buffer in the storage unit 120. In this embodiment, one audio buffer contains 512 samples of sampling data, and audio similarity is determined for 16 consecutive audio buffers as one unit. In this embodiment, the 16 consecutive audio buffers are represented by array variables of audio buffer [0] to audio buffer

[15] . These 16 audio buffers store 512 samples x 16 / 16384 Hz = 0.5 seconds of audio data.

[0035] The process of storing the sound data acquired by the control unit 110 from the microphone 214 in the voice buffer is executed in parallel with other processes as a voice buffer storage thread. In this embodiment, in the voice feature parameter calculation process described later, the control unit 110 performs a process of calculating three pieces of cepstrum information from the sampling data of 512 samples in one voice buffer for 16 voice buffers. The control unit 110 handles the 48 (=3×16) pieces of data obtained in this way as 48-dimensional voice feature parameters.

[0036] These voice feature parameters are also stored in the storage unit 120 in a first-in, first-out (FIFO) manner up to the number of history storages (e.g., 256). In this embodiment, the FIFO that stores the voice feature parameters is called VFIFO, and the number of voice feature parameters stored in VFIFO is stored in a variable called VFIFO_SIZE. Since VFIFO stores the history of voice feature parameters, it is also called voice history.

[0037] Returning to FIG. 4, the driving unit 220 includes a twist motor 221 and an up-down motor 222 as movable parts for expressing the movement of the robot 200 (own machine), and is driven by the control unit 110. The control unit 110 controls the driving unit 220, so that the robot 200 can express movements such as lifting the head 204 (rotating it upward around the second rotation axis) or twisting it sideways (twisting and rotating it to the right or left around the first rotation axis). The robot 200 can also move by rotating the head 204 sideways with the head 204 facing downward, for example. The movement control data for performing these movements is recorded in the storage unit 120, and the movements of the robot 200 are controlled based on the detected external stimuli, a growth value described later, and the like.

[0038] Note that the above is just one example of the drive unit 220, and the drive unit 220 may be equipped with wheels, crawlers, arms, legs, etc., which allow the robot 200 to move in any direction and move its body.

[0039] The output unit 230 includes a speaker 231, and when the control unit 110 inputs sound data to the output unit 230, sound is output from the speaker 231. For example, when the control unit 110 inputs data of the cry of the robot 200 to the output unit 230, the robot 200 emits a pseudo cry. This cry data is also recorded in the storage unit 120, and the cry is selected based on the detected external stimuli, a growth value described later, and the like. The output unit 230, which is configured with the speaker 231, is also called a sound output unit.

[0040] Furthermore, instead of or in addition to the speaker 231, the output unit 230 may include a display such as a liquid crystal display or a light-emitting unit such as an LED (Light Emitting Diode), and may display an image based on the detected external stimuli or growth values ​​described later on the display or may cause the LED to emit light.

[0041] The operation unit 240 is composed of, for example, operation buttons, a volume knob, etc. The operation unit 240 is an interface for accepting operations by a user (owner or recipient), such as turning the power on / off and adjusting the volume of the output sound. In order to enhance the feeling of life in the robot 200, the operation unit 240 may include only a power switch on the inside of the exterior 201, and may not include other operation buttons, volume knobs, etc. Even in this case, operations such as adjusting the volume of the robot 200 can be performed using an external smartphone or the like connected via the communication unit 130.

[0042] Above, we have explained the functional configuration of the robot 200. Next, we will explain the characteristic functions of the robot 200, that is, the owner registration function, the call response function, and the tame behavior function.

[0043] The owner registration function is a function in which, when the robot 200 is repeatedly called within a certain registration time (e.g., 3 minutes) from the first power-on, the robot stores the voice feature parameters in the storage unit 120 as the owner's feature (registered voice) and notifies the user by an action (e.g., barking five times in a happy manner). In this embodiment, only the voice feature parameters are stored in the storage unit 120 as the registered voice as the owner's feature, but the touch feature parameters may also be stored in the storage unit 120 as the owner's feature (registered stroking style information) based on the touch feature parameters repeatedly acquired during the registration time.

[0044] The call response function is a function in which, when the robot 200 is called repeatedly (after the owner is registered or after a certain registration time (e.g., 3 minutes) has elapsed since the first power-on), the robot recognizes that someone is calling it, regardless of whether the person calling is the owner or not, and responds to the call (e.g., makes a gesture as if to ask, "What?").

[0045] The tame behavior function is a function that, if the most recently acquired voice feature parameters or touch feature parameters based on the voice history or touch history are similar to past calls or strokes, recognizes that the person is the owner or a person who always takes care of the robot, and performs a behavior (tame behavior) different from the behavior toward other people (general behavior). However, if the robot always performs tame behavior toward the owner or a person who always takes care of the robot, the behavior may become monotonous, so in this embodiment, the tame behavior is performed with a probability according to the growth degree of the robot 200 (growth value to be described later).

[0046] Specifically, as shown in Figure 6, for the tame behavior caused by voice, if the voice feature parameters of the acquired voice are highly similar to the registered voice, the dog will recognize the person calling out as "definitely the owner" and perform the tame behavior it would perform if it recognized the person as the owner (for example, a behavior such as approaching the owner with joy) with a probability of (growth value / 10) x 50%, and will perform a general behavior determined based on the growth value, etc. with a probability of 100-(growth value / 10) x 50%.

[0047] In addition, if the robot does not recognize that the person is "definitely the owner," and the similarity between the voice feature parameters of the acquired voice and the voice history is high (or medium), the robot will recognize the person calling out as "probably the owner (or may be the owner)," and will perform the tame behavior (for example, a happy behavior (or a behavior saying "what?")) that it would perform when it recognizes the person as probably (or may be) the owner (with a probability of (growth value / 10) x 50%), and will perform a general behavior determined based on the growth value, etc., with a probability of 100-(growth value / 10) x 50%.

[0048] If the similarity between the voice feature parameters of the acquired voice and the voice history is low, the pet will recognize that the person calling out to it is not its owner, and will not perform any tame behavior, but will instead perform general behavior determined based on growth values, etc., with a 100% probability.

[0049] As for the tame behavior based on how the robot is stroked, as shown in FIG. 7, if the similarity between the acquired touch feature parameters and the touch history is very high, the robot will recognize the person who stroked it as "someone who will definitely always take care of the robot," and will perform the tame behavior it would perform when it recognizes the person as someone who will definitely always take care of the robot (for example, a very happy behavior) with a probability of (growth value / 10) × 50%, and will perform a general behavior determined based on the growth value, etc. with a probability of 100-(growth value / 10) × 50%.

[0050] Furthermore, if the similarity between the acquired touch feature parameters and the touch history is high (or medium), the robot will recognize the person who stroked it as "probably someone who always takes care of it (or may always take care of it)" and will perform a tame behavior (for example, a happy behavior (or a behavior that says "What?")) when it recognizes that the person is probably someone who always takes care of it (or may always take care of it) with a probability of (growth value / 10) x 50%, and will perform a general behavior determined based on the growth value, etc. with a probability of 100-(growth value / 10) x 50%.

[0051] If the degree of similarity between the acquired touch characteristic parameters and the touch history is low, the robot will recognize that the person petting it is not someone who will always take care of it, and will not perform any tame behavior, but will instead perform a general behavior determined based on the growth value, etc., with a 100% probability.

[0052] In this embodiment, the familiarity behavior is defined as being divided into those based on voice (FIG. 6) and those based on stroking (FIG. 7), but the definition of the familiarity behavior is not limited to this. For example, it is possible to define familiarity behaviors when both the similarity in the voice history and the similarity in the touch history are high, familiarity behaviors when only the similarity in the voice history is high, and familiarity behaviors when the similarity in the touch history is high, respectively.

[0053] 6 and 7, the occurrence probability of the tame action is set to always be less than 100%, but this is only an example. The tame action may be always performed when the similarity with the registered voice, voice history, and touch history is high.

[0054] Next, we will explain in order the emotion data 121, emotion change data 122, growth table 123, action content table 124, and growth days data 125, which are data necessary for determining general actions determined based on growth values ​​and the like, among the data stored in memory unit 120.

[0055] The emotion data 121 is data for making the robot 200 have a pseudo emotion, and is data (X, Y) showing coordinates on the emotion map 300. As shown in FIG. 8, the emotion map 300 is expressed in a two-dimensional coordinate system having an X-axis 311 representing a degree of security (anxiety) and a Y-axis 312 representing a degree of excitement (lethargicness). The origin 310 (0, 0) on the emotion map represents a normal emotion. The positive X-coordinate value (X value) represents a higher absolute value, which indicates a higher degree of security, and the positive Y-coordinate value (Y value) represents a higher absolute value, which indicates a higher degree of excitement. The negative X-value represents a higher absolute value, which indicates a higher degree of anxiety, and the negative Y-value represents a higher absolute value, which indicates a higher degree of lethargy.

[0056] 8, emotion map 300 is represented in a two-dimensional coordinate system, but emotion map 300 may have any number of dimensions. Emotion map 300 may be defined in one dimension, and one value may be set as emotion data 121. Furthermore, emotion map 300 may be defined in a coordinate system of three or more dimensions by adding other axes, and a value equal to the number of dimensions of emotion map 300 may be set as emotion data 121.

[0057] In this embodiment, the size of the emotion map 300 as the initial value is 100 for both the X value and the Y value, and -100 for both the minimum and maximum values. During the first period, each time the number of days of the simulated growth of the robot 200 increases by one day, both the maximum and minimum values ​​of the emotion map 300 are expanded by 2. Here, the first period is a period during which the robot 200 grows in a simulated manner, and is, for example, a period of 50 days from the simulated birth of the robot 200. The simulated birth of the robot 200 is the first time the robot 200 is started by the user after being shipped from the factory. When the number of days of growth reaches 25 days, the maximum and minimum values ​​of the X value and the Y value become 150 and -150, respectively, as shown in a frame 302 in FIG. Then, when the first period (50 days in this example) has passed, the pseudo-growth of the robot 200 is deemed to be complete, and the size of the emotion map 300 is fixed, with the maximum X and Y values ​​both becoming 200 and the minimum becoming -200, as shown in frame 303 in FIG. 8.

[0058] The emotion change data 122 is data that sets the amount of change by which each of the X value and Y value of the emotion data 121 is increased or decreased. In this embodiment, the emotion change data 122 corresponding to the X of the emotion data 121 includes DXP that increases the X value and DXM that decreases the X value, and the emotion change data 122 corresponding to the Y value of the emotion data 121 includes DYP that increases the Y value and DYM that decreases the Y value. In other words, the emotion change data 122 is made up of the following four variables, and is data that indicates the degree to which the simulated emotion of the robot 200 is changed. DXP: Ease of feeling at ease (the ease with which the X value in the emotion map changes in the positive direction) DXM: Tendency to become anxious (the tendency for the X value on the emotion map to change in the negative direction) DYP: Excitability (the tendency for the Y value on the emotion map to change in the positive direction) DYM: Tendency to become apathetic (tenacity of the Y value on the emotion map to change in the negative direction)

[0059] In this embodiment, as an example, the initial values ​​of these variables are all set to 10, and are increased up to a maximum of 20 by a process of learning emotion change data in the motion control process described later. This learning process changes the emotion change data 122, i.e., the degree of emotion change, so that the robot 200 has various personalities depending on how the user interacts with the robot 200. In other words, the personality of the robot 200 is formed differently for each individual depending on how the user interacts with the robot.

[0060] Therefore, in this embodiment, each personality data (personality value) is derived by subtracting 10 from each emotion change data 122. That is, the personality value (cheerful) is obtained by subtracting 10 from DXP, which indicates ease of feeling at ease, the personality value (shy) is obtained by subtracting 10 from DXM, which indicates ease of feeling anxious, the personality value (active) is obtained by subtracting 10 from DYP, which indicates ease of getting excited, and the personality value (spoiled) is obtained by subtracting 10 from DYM, which indicates ease of feeling lethargic. As a result, for example, as shown in FIG. 9, the personality value (cheerful) is plotted on axis 411, the personality value (active) is plotted on axis 412, the personality value (shy) is plotted on axis 413, and the personality value (spoiled) is plotted on axis 414, respectively, to generate a personality value radar chart 400.

[0061] 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 chart 400. Then, as the robot 200 grows, each personality value changes up to an upper limit of 10 depending on external stimuli (how the user interacts with the robot 200) detected by the sensor unit 210. When the four personality values ​​change from 0 to 10 as in this embodiment, 11 to the fourth power = 14641 different personalities can be expressed.

[0062] In this embodiment, the largest value among these four personality values ​​is used as growth degree data (growth value) indicating the simulated growth degree of the robot 200. Then, the control unit 110 controls the robot 200 so that variations occur in the operation contents of the robot 200 as the robot 200 grows pseudo (as the growth value increases). Data used by the control unit 110 for this purpose is the growth table 123.

[0063] As shown in FIG. 10, the growth table 123 records the types of actions that the robot 200 performs in response to action triggers such as external stimuli detected by the sensor unit 210, and the probability that each action will be selected in response to the growth value (hereinafter referred to as "action selection probability"). The action trigger is information such as an external stimulus that triggers the robot 200 to perform some action. The action selection probability is set so that while the growth value is small, a basic action set in response to the action trigger is selected regardless of the personality value, and as the growth value increases, a personality action set in response to the personality value is selected. The action selection probability is set so that the types of basic actions that can be selected increase as the growth value increases.

[0064] For example, assume that the current personality values ​​of the robot 200 are, as shown in Fig. 9, personality value (cheerful) 3, personality value (active) 8, personality value (shy) 5, and personality value (spoiled) 4, and a loud sound is detected by the microphone 214. In this case, the growth value is 8, which is the maximum value of the four personality values, and the action trigger is "a loud noise is heard." Then, referring to the item in the growth table 123 shown in Fig. 10 where the action trigger is "a loud noise is heard" and the growth value is 8, it is found that the action selection probability is 20% for "basic action 2-0", 20% for "basic action 2-1", 40% for "basic action 2-2", and 20% for "personality action 2-0".

[0065] That is, in this case, "basic action 2-0" is selected with a probability of 20%, "basic action 2-1" with a probability of 20%, "basic action 2-2" with a probability of 40%, and "personality action 2-0" with a probability of 20%. If "personality action 2-0" is selected, one of four types of personality actions as shown in FIG. 11 is further selected according to the four personality values. Then, the robot 200 executes the action selected here.

[0066] In Fig. 10, one character action is selected for each action trigger, but as with basic actions, the types of character actions that can be selected may be increased as the character value increases. Also, the contents of Fig. 10 may be integrated with the contents of Fig. 6 and Fig. 7 to set a growth table that includes tame actions among the types of actions.

[0067] Furthermore, the growth table 123 may have any form as long as it can be defined as a function (growth function) that returns the action selection probability of each action type using a growth value as an argument for each action trigger, and does not necessarily have to be tabular data as shown in Figure 10.

[0068] As shown in Fig. 11, the action content table 124 is a table in which the specific action content of each action type defined in the growth table 123 is recorded. However, for personality actions, the action content is defined for each personality type. Note that the action content table 124 is not essential data. For example, if the growth table 123 is configured in such a way 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.

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

[0070] Next, the motion control process executed by the control unit 110 of the robot 200 will be described with reference to the flowchart shown in Fig. 12. The motion control process is a process in which the control unit 110 controls the motion (movements, cries, etc.) of the robot 200 based on detection values ​​from the sensor unit 210, etc. When the user turns on the power of the robot 200, a thread for this motion control process starts to be executed in parallel with other necessary processes. The motion control process controls the drive unit 220 and the output unit 230 (sound output unit) to express the motion of the robot 200 and output sounds such as cries.

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

[0072] Then, the control unit 110 executes a microphone input process to acquire an external stimulus from the microphone 214 (step S102). The microphone input process will be described in detail later. Next, the control unit 110 executes a touch input process to acquire an external stimulus from the touch sensor 211 or the acceleration sensor 212 (step S103). The touch input process will also be described in detail later. Note that in this embodiment, the microphone input process and the touch input process are described as separate processes for ease of understanding, but a process of acquiring an external stimulus from various sensors provided in the sensor unit 210 may be executed as one process (external input process).

[0073] Then, the control unit 110 judges whether or not there is an external stimulus detected by the sensor unit 210 (step S104). If there is an external stimulus, BigSound_Flag, TalkSound_Flag, or Touch_Flag becomes ON by the above-mentioned microphone input process and touch input process, so that the control unit 110 can make the judgment in step S104 based on the values ​​of these flag variables.

[0074] If there is an external stimulus (step S104; Yes), the control unit 110 acquires emotion change data 122 to be added to or subtracted from the emotion data 121 according to the external stimulus acquired in the microphone input process and the touch input process (step S105). Specifically, for example, when the touch sensor 211 of the head 204 detects that the head 204 has been stroked as an external stimulus, the robot 200 feels a pseudo sense of security, so the control unit 110 acquires DXP as emotion change data 122 to be added to the X value of the emotion data 121.

[0075] Then, the control unit 110 sets the emotion data 121 according to the emotion change data 122 acquired in step S105 (step S106). Specifically, for example, if DXP has been acquired as the emotion change data 122 in step S105, the control unit 110 adds the DXP of the emotion change data 122 to the X value of the emotion data 121. However, if the value (X value, Y value) of the emotion data 121 exceeds the maximum value of the emotion map 300 when the emotion change data 122 is added, the value of the emotion data 121 is set to the maximum value of the emotion map 300. Also, if the value of the emotion data 121 becomes less than the minimum value of the emotion map 300 when the emotion change data 122 is subtracted, the value of the emotion data 121 is set to the minimum value of the emotion map 300.

[0076] In steps S105 and S106, it is possible to arbitrarily set what emotion change data 122 is acquired for each external stimulus and what emotion data 121 is set, but here, an example is shown below. Note that the maximum and minimum values ​​of the X and Y values ​​of emotion data 121 are defined by the size of emotion map 300, so the following calculation sets the maximum value when it exceeds the maximum value of emotion map 300, and sets the minimum value when it falls below the minimum value of emotion map 300.

[0077] Head 204 is stroked (feels safe): X=X+DXP Hit on the head 204 (feels anxious): X=X-DXM (These external stimuli can be detected by the touch sensor 211 on the head 204.) The torso 206 is stroked (excited): Y=Y+DYP Hitting the torso 206 (becoming lethargic): Y=Y-DYM (These external stimuli can be detected by the touch sensor 211 on the torso 206.) Being held with head up (happy): X=X+DXP and Y=Y+DYP Hanging head down (sad): X=X-DXM and Y=Y-DYM (These external stimuli can be detected by the touch sensor 211 and the acceleration sensor 212.) A gentle voice calls out to you (becomes peaceful): X=X+DXP and Y=Y-DYM Being yelled at loudly (irritated): X=X-DXM and Y=Y+DYP (These external stimuli can be detected by microphone 214.)

[0078] Then, the control unit 110 determines whether or not there has been an external stimulus such as a touch in the touch input process (step S107). Specifically, the control unit 110 may determine whether or not Touch_Flag is ON. If there has been a touch or the like (step S107; Yes), the control unit 110 executes a touch response process (step S108). The details of the touch response process will be described later. Then, the control unit 110 assigns OFF to the variable Touch_Flag (step S109) and proceeds to step S119.

[0079] On the other hand, if there is no external stimulus such as a touch in the touch input process (step S107; No), the control unit 110 judges whether there is a voice as an external stimulus in the microphone input process (step S110). Specifically, it is sufficient to judge whether TalkSound_Flag is ON or not. If there is a voice (step S110; Yes), the control unit 110 executes a voice response process (step S111). The details of the voice response process will be described later. Then, the control unit 110 assigns OFF to the variable TalkSound_Flag (step S112) and proceeds to step S119.

[0080] 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 judges whether or not there is a loud sound as an external stimulus in the microphone input process (step S113). Specifically, it is sufficient to judge whether or not BigSound_Flag is ON. If there is a loud sound (step S113; Yes), the control unit 110 executes an action that reacts to the loud sound (step S114). That is, the control unit 110 executes an action (basic action 2-0, etc.) that corresponds to "a loud sound is heard" as an action trigger in the growth table 123 shown in FIG. 10. Then, the control unit 110 assigns OFF to the variable BigSound_Flag (step S115) and proceeds to step S119.

[0081] 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 executes an action corresponding to other external stimuli (if an action trigger corresponding to the external stimulus acquired in the microphone input processing or touch input processing exists in the growth table 123, an action corresponding to that action trigger) (step S116), and proceeds to step S119.

[0082] On the other hand, if there is no external stimulus in step S104 (step S104; No), the control unit 110 judges whether or not to perform a spontaneous movement such as breathing (step S117). The method of judging whether or not to perform a spontaneous movement is arbitrary, but in this embodiment, the judgment in step S117 becomes Yes every breathing cycle (for example, 2 seconds), and breathing is performed.

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

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

[0085] If the date has changed (step S119; Yes), the control unit 110 judges whether or not it is within the first period (step S120). If the first period is, for example, 50 days from the pseudo-birth of the robot 200 (for example, the first activation by the user after purchase), the control unit 110 judges that it is within the first period if the growth day data 125 is 50 or less. If it is not within the first period (step S120; No), the control unit 110 proceeds to step S122.

[0086] If it is during the first period (step S120; Yes), the control unit 110 learns the emotion change data 122 and expands the emotion map (step S121). Specifically, learning the emotion change data 122 is a process of updating the emotion change data 122 by adding 1 to the DXP of the emotion change data 122 if the X value of the emotion data 121 has been set to the maximum value of the emotion map 300 even once in step S106 of that day, adding 1 to the DYP of the emotion change data 122 if the Y value of the emotion data 121 has been set to the maximum value of the emotion map 300 even once, adding 1 to the DXM of the emotion change data 122 if the X value of the emotion data 121 has been set to the minimum value of the emotion map 300 even once, and adding 1 to the DYM of the emotion change data 122 if the Y value of the emotion data 121 has been set to the minimum value of the emotion map 300 even once.

[0087] However, if each value of the emotion change data 122 becomes too large, the amount of change in one time of the emotion data 121 becomes too large, so each value of the emotion change data 122 is limited to a maximum value of, for example, 20 or less. Also, although 1 is added to each piece of emotion change data 122 here, the value added is not limited to 1. For example, the number of times each value of the emotion data 121 is set to the maximum or minimum value of the emotion map 300 may be counted, and if this number is large, the value added to the emotion change data 122 may be increased.

[0088] Returning to step S121 in Fig. 12, expanding the emotion map is specifically a process in which control unit 110 expands both the maximum and minimum values ​​of emotion map 300 by 2. However, this expansion value of "2" is merely an example, and it may be expanded by 3 or more, or may be expanded by just 1. Furthermore, the expansion value does not have to be the same for each axis of emotion map 300, or for the maximum and minimum values.

[0089] Then, control unit 110 adds 1 to growth days data 125, initializes both the X and Y values ​​of emotion data to 0 (step S122), and returns to step S102.

[0090] Next, the microphone input process executed in step S102 of the above-mentioned operation control process will be described with reference to FIG.

[0091] First, the control unit 110 assigns the maximum level of the sampling data stored in the sound buffer to the variable ML (step S201). Then, the control unit 110 judges whether the value of the variable ML is larger than BigSoundTh (step S202). Note that a value (loud sound threshold) is set in advance for BigSoundTh, which is a value that causes the robot 200 to perform a startled motion in response to a sound louder than this value. If the variable ML is larger than BigSoundTh (step S202; Yes), the control unit 110 sets the variable BigSound_Flag, which indicates that a loud sound has been input, to ON (step S203), ends the microphone input process, and proceeds to step S103 of the motion control process.

[0092] On the other hand, if the variable ML is equal to or smaller than BigSoundTh (step S202; No), the control unit 110 judges whether or not the value of the variable ML is larger than TalkSoundTh. Note that a value (speech threshold) below which the robot 200 cannot hear as a speaking voice is preset for TalkSoundTh. If the variable ML is equal to or smaller than TalkSoundTh (step S204; No), the control unit 110 ignores the sound in the current voice buffer, ends the microphone input process, and proceeds to step S103 of the motion control process.

[0093] On the other hand, if the variable ML is greater than TalkSoundTh (step S204; Yes), the control unit 110 judges whether the number of audio buffers storing sound data is less than a reference number (here, 16) (step S205). If the number of audio 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 audio buffers are stored.

[0094] On the other hand, if the number of voice buffers reaches the reference number (step S205; No), the control unit 110 judges whether the sounds stored in the reference number of voice buffers are noise or not (step S206). In the case of a talking voice, a sound with a level higher than TalkSoundTh occurs for a certain period of time (for example, 0.1 seconds or more), but in the case of noise, it is often a single, momentary sound. Therefore, the control unit 110 can use such sound characteristics to judge whether the sounds stored in the voice buffers are noise or not.

[0095] For example, the control unit 110 first determines whether the maximum level of the sampling data stored in each of the first noise determination number of the reference number of audio buffers (three in this embodiment, i.e., audio buffer [0], audio buffer [1], and audio buffer [2]) is greater than TalkSoundTh. If there is even one audio buffer whose maximum level is less than TalkSoundTh, it determines that the sound in the currently stored reference number of audio buffers is noise, and if the maximum levels of all audio buffers of the noise determination number (i.e., audio buffer [0], audio buffer [1], and audio buffer [2]) are greater than TalkSoundTh, it determines that it is not noise.

[0096] Returning to FIG. 13, if the sounds stored in the reference number of audio buffers are noise (step S206; Yes), the control unit 110 ignores the sounds in the current reference number of audio buffers (determines that there is no external sound stimulus that could trigger an action), terminates the microphone input processing, and proceeds to step S103 of the action control processing.

[0097] On the other hand, if the sounds stored in the reference number of voice buffers are not noise (step S206; No), the control unit 110 assigns ON to the variable TalkSound_Flag, which indicates that a speech has been input (step S207), and performs a voice feature parameter calculation process (step S208). The voice feature parameter calculation process is a process for calculating voice feature parameters by calculating a cepstrum from the sampling data stored in the voice buffer, and will be described in detail later.

[0098] Next, the control unit 110 performs a repeated call determination process (step S209). The repeated call determination process is a process for determining whether or not a call is being made repeatedly by comparing the voice feature parameters calculated in the voice feature parameter calculation process (the voice feature parameters acquired at the timing of performing this process) with the voice history for the most recent consecutive determination storage number (three in this embodiment) and returning the determination result.

[0099] Specifically, the control unit 110 calculates the distance (L2 norm) between the voice feature parameter acquired at the timing of performing this process and each of the most recent three voice feature parameters in the voice history, and if two or more of the three calculated distances are less than VsimTh (preset as a voice similarity threshold), it is determined to be a "repeated call", and if one or less is less than VsimTh, it is determined to not be a "repeated call". The voice history for the most recent consecutive judgment saved number is also called a consecutive judgment feature.

[0100] Then, the control unit 110 judges whether the result of the repeated call judgment process is "repeated call" or not (step S210). If it is a repeated call (step S210; Yes), the control unit 110 judges whether it is an owner registration or not (step S211). Specifically, if it is within the registration time (e.g., within 3 minutes) from the first power ON of the robot 200 and the variable TalkOwnerRegistration_Flag is 0, the control unit 110 judges it is an owner registration, and if the registration time has passed or the variable TalkOwnerRegistration_Flag is not 0, it judges it is not an owner registration.

[0101] If the owner is registered (step S211; Yes), the control unit 110 assigns 1 to the variable Talk_Owner_Registration_Flag (step S212) and proceeds to step S214. If the owner is not registered (step S211; No), the control unit 110 sets the variable Talk_Repeat_Flag to ON (step S213) and proceeds to step S214. Then, in step S214, the control unit 110 saves the voice feature parameters calculated in step S208 in the voice history (VFIFO) in a first-in first-out manner (step S214). Then, the control unit 110 ends the microphone input process and proceeds to step S103 of the motion control process.

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

[0103] Then, the control unit 110 judges whether the judgment result of the owner's voice judgment process is "the owner's voice" or not (step S216). If it is the owner's voice (step S216; Yes), the control unit 110 assigns ON to the variable Talk_absolute_Flag, which indicates that the robot 200 has recognized that the voice is definitely the owner's voice (step S217), and proceeds to step S214.

[0104] If the voice is not that of the owner (step S216; No), the control unit 110 performs a process of determining the similarity with the voice history (step S218). The process of determining the similarity with the voice history is a process of finding the similarity by comparing the voice feature parameters calculated in the voice feature parameter calculation process with the voice history, and returning an integer from 0 to 2 (0=not similar, 1=medium similarity, 2=high similarity) according to the similarity, which will be described in detail later.

[0105] Then, the control unit 110 judges whether the result returned in the process of judging the similarity with the voice history is 2 (i.e., high similarity) (step S219). If the returned value is 2 (step S219; Yes), the control unit 110 assigns ON to the variable TalkProbably_Flag, which indicates that the robot 200 has recognized that the voice is probably that of the owner (step S220), and proceeds to step S214.

[0106] If the result returned by the process of determining the similarity with the voice history is not 2 (step S219; No), the control unit 110 judges whether the result returned by the process of determining the similarity with the voice history is 1 (i.e., medium similarity) (step S221). If the returned value is 1 (step S221; Yes), the control unit 110 assigns ON to the variable Talk_Flag, which indicates that the robot 200 has recognized that the voice may be that of the owner (step S222), and proceeds to step S214.

[0107] If the result returned by the similarity determination process with the voice history is not 1 (i.e., "not similar") (step S221; No), the control unit 110 assigns ON to the variable Talk general action_Flag, which indicates that a general action is to be performed (step S223), and proceeds to step S214.

[0108] Next, the voice feature parameter calculation process executed in step S208 of the microphone input process will be described with reference to FIG.

[0109] First, the control unit 110 initializes a variable i, which is an array variable used to specify each element of the audio buffer (audio buffer [0] to audio buffer

[15] ), to 0 (step S231). Then, the control unit 110 determines whether the variable i is 16 or greater (step S232). If the variable i is 16 or greater (step S232; Yes), the control unit 110 ends the audio feature parameter calculation process and proceeds to step S209 of the microphone input process.

[0110] 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 contained in the audio buffer [i] (step S233). Then, the control unit 110 calculates the first 256 amplitude components (frequency spectrum of the audio data) obtained by the FFT (step S234). Here, assuming that the amplitude components are stored in variables α[0] to α

[0255] , the control unit 110 calculates the following: α[n] = √(square of nth real component + square of nth imaginary component) (where n is 0 to 255) Calculate.

[0111] Next, the control unit 110 calculates the natural logarithm of each of the 256 amplitude components (step S235). Here, assuming that the natural logarithms are stored in variables β[0] to β

[0255] , the control unit 110 calculates the natural logarithm of each of the 256 amplitude components (step S235). β[n]=ln(α[n]) (where n is 0 to 255) Calculate.

[0112] 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 a reference number of components (three in this embodiment) excluding the DC component (the first one) from the components obtained by FFT (step S237). Since a cepstrum is obtained here, if this is stored in variables Cps[0] to Cps[2], the control unit 110 calculates Cps[n-1] = √(square of nth real component + square of nth imaginary component) (where n is 1 to 3) Calculate.

[0113] Next, the control unit 110 saves the calculated three cepstrums as speech feature parameters (step S238). Here, assuming that the speech feature parameters are stored in an array variable VF[i,n], the control unit 110 stores the following: VF[i,n]=Cps[n] (where n is 0 to 2) Then, control unit 110 adds 1 to variable i (step S239), and returns to step S232.

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

[0115] Next, the process of determining the degree of similarity with the voice history executed in step S218 of the microphone input process will be described with reference to FIG.

[0116] First, the control unit 110 judges whether the variable VFIFO_Size, in which the number of stored voice histories is saved, is greater than the minimum voice reference number (32 in this embodiment) (step S251). If VFIFO_Size is equal to or less than the minimum voice reference number (step S251; No), sufficient similarity judgment cannot be performed, so the control unit 110 returns "0" (indicating no similarity), ends the similarity judgment process with the voice history, and proceeds to step S219 of the microphone input process.

[0117] If VFIFO_Size is larger than the minimum voice reference number (step S251; Yes), the control unit 110 initializes to 0 the variable simCnt for counting the number of voice histories with high similarity, the variable maysimCnt for counting the number of voice histories with medium similarity, and the variable i for specifying each element of the voice history VFIFO as an array variable (VFIFO[0] to VFIFO[VFIFO_Size-1]) (step S252).

[0118] Then, the control unit 110 calculates the distance (L2 norm) between the voice feature parameter calculated in step S208 and VFIFO[i], and assigns the distance to the variable d[i] (step S253). Then, the control unit 110 judges whether the value of the variable d[i] is less than VSimTh (voice 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 equal to or greater than VSimTh (step S254; No), the control unit 110 proceeds to step S256.

[0119] Then, in step S256, the control unit 110 judges whether the value of the variable d[i] is less than VMaySimTh (middle voice similarity threshold). Note that VMaySimTh (middle voice similarity threshold) is preset to a value greater than VSimTh (voice similarity threshold). 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 or equal to VMaySimTh (step S256; No), the control unit 110 proceeds to step S258.

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

[0121] If the variable i is equal to or larger than VFIFO_Size (step S259; No), the control unit 110 judges 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), this means that the similarity between the voice feature parameters calculated in step S208 and the voice history is high, so the control unit 110 returns "2", ends the similarity judgment process with the voice history, and proceeds to step S219 of the microphone input process.

[0122] On the other hand, if the ratio of the variable simCnt to the variable VFIFO_Size is 20% or less (step S260; No), the control unit 110 judges 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 voice feature parameters calculated in step S208 and the voice history is medium, so the control unit 110 returns "1", ends the similarity judgment process with the voice history, and proceeds to step S219 of the microphone input process.

[0123] On the other hand, if the ratio of the variable maysimCnt to the variable VFIFO_Size is 30% or less (step S261; No), this means that the voice feature parameters calculated in step S208 are not similar to the voice history, so the control unit 110 returns "0", ends the similarity determination process with the voice history, and proceeds to step S219 of the microphone input process. Note that the comparison with "20%" and "30%" in the above determination is merely an example, and can be changed as necessary along with VSimTh and VMaySimTh.

[0124] Next, the touch input process executed in step S103 of the operation control process will be described with reference to FIG.

[0125] First, the control unit 110 acquires detection values ​​detected by each of 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 has been 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).

[0126] If there is a touch, a change in acceleration, or a change in angular velocity (step S302; Yes), the control unit 110 sets the variable Touch_Flag to ON (step S303) and calculates touch characteristic parameters (step S304). As described above, the touch characteristic parameters are composed of five-dimensional information including the posture of the robot 200 (dir), 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).

[0127] Then, the control unit 110 performs a similarity determination process with the touch history (step S305). The similarity determination process with the touch history is a process in which the touch feature parameters calculated in step S304 are compared with the touch history to obtain a similarity, and an integer between 0 and 3 (0=not similar, 1=medium similarity, 2=high similarity, 3=very high similarity) is returned according to the similarity, as will be described later in detail. Then, the control unit 110 determines whether the result returned in the similarity determination process with the touch history is 3 or not (step S306). If the returned value is 3 (step S306; Yes), the control unit 110 assigns ON to the variable Touch_absolute_Flag, which indicates that the robot 200 has recognized that the way of touching (stroking) is definitely that of a person who always takes care of the robot (step S307), and proceeds to step S313.

[0128] If the value returned in the process of determining the similarity with the touch history is not 3 (step S306; No), the control unit 110 determines whether the value returned in the process of determining the similarity with the touch history is 2 (step S308). If the value returned is 2 (step S308; Yes), the control unit 110 assigns ON to the variable TouchProbably_Flag, which indicates that the robot 200 has recognized that the way of touching (stroking) is probably that of a person who always takes care of the robot (step S309), and proceeds to step S313.

[0129] If the value returned in the process of determining the similarity with the touch history is not 2 (step S308; No), the control unit 110 determines whether the value returned in the process of determining the similarity with the touch history is 1 (step S310). If the value returned is 1 (step S310; Yes), the control unit 110 assigns ON to the variable Touch_Maybe_Flag, which indicates that the robot 200 has recognized that the way of touching (stroking) may be that of a person who always takes care of the robot (step S311), and proceeds to step S313.

[0130] If the value returned by the similarity determination process with the touch history is not 1 (step S310; No), it means that the touch feature parameters calculated in step S304 are not similar to the touch history, so the control unit 110 assigns ON to the variable Touch general operation_Flag, which indicates that a general operation is to be performed (step S312), and proceeds to step S313.

[0131] In step S313, the control unit 110 stores the touch feature parameters calculated in step S304 in a touch history (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 operation control process.

[0132] Next, the process of determining the degree of similarity with the touch history, which is executed in step S305 of the touch input process, will be described with reference to FIG.

[0133] First, the control unit 110 judges whether the variable TFIFO_Size, which stores the number of touch history entries, is greater than the minimum touch reference number (32 in this embodiment) (step S351). If TFIFO_Size is equal to or less than the minimum touch reference number (step S351; No), sufficient similarity judgment cannot be performed, so the control unit 110 returns "0" (indicating no similarity), ends the similarity judgment process with the touch history, and proceeds to step S306 of the touch input process.

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

[0135] Then, the control unit 110 judges whether or not the touch feature parameters calculated in step S304 and the posture information (dir) of the robot 200 included in TFIFO[i] match (step S353). If they do not match (step S353; No), the control unit 110 proceeds to step S361.

[0136] If the poses (dir) match (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 assigns the distance to variable d[i] (step S354). Then, control unit 110 judges whether the value of variable d[i] is less than TAbsSimTh (ultra-high touch similarity threshold) (step S355). Note that TAbsSimTh (ultra-high touch similarity threshold) is preset to a value smaller than TSimTh (touch similarity threshold) (described later). If d[i] is less than TAbsSimTh (step S355; Yes), control unit 110 adds 1 to variable abssimCnt (step S356) and proceeds to step S357. If d[i] is greater than or equal to TAbsSimTh (step S355; No), proceeds to step S357.

[0137] Then, in step S357, the control unit 110 determines whether the value of the variable d[i] is less than TSimTh (preset as a 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 equal to or greater than TSimTh (step S357; No), the control unit 110 proceeds to step S359.

[0138] Then, in step S359, the control unit 110 determines whether the value of the variable d[i] is less than TMaySimTh (medium-level touch similarity threshold). Note that a value greater than TSimTh (touch similarity threshold) is preset as TMaySimTh (medium-level touch similarity threshold). 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 equal to or greater than TMaySimTh (step S359; No), the control unit 110 proceeds to step S361.

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

[0140] If the variable i is equal to or larger than TFIFO_Size (step S362; No), the control unit 110 judges 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), this means that the similarity between the touch feature parameter calculated in step S304 and the touch history is very high, so the control unit 110 returns "3", ends the similarity judgment process with the touch history, and proceeds to step S306 of the touch input process.

[0141] On the other hand, if the ratio of the variable abssimCnt to the variable TFIFO_Size is 30% or less (step S363; No), the control unit 110 judges 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 similarity between the touch feature parameter calculated in step S304 and the touch history is high, so the control unit 110 returns "2", ends the similarity judgment process with the touch history, and proceeds to step S306 of the touch input process.

[0142] On the other hand, if the ratio of the variable simCnt to the variable TFIFO_Size is 30% or less (step S364; No), the control unit 110 judges 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 is medium, so the control unit 110 returns "1", ends the similarity judgment process with the touch history, and proceeds to step S306 of the touch input process.

[0143] On the other hand, if the ratio of the variable maysimCnt to the variable TFIFO_Size is 30% or less (step S365; No), this means that the touch feature parameters calculated in step S304 are not similar to the touch history, so the control unit 110 returns "0", ends the similarity determination process with the touch history, and proceeds to step S306 of the touch input process. Note that the comparison with "30%" in the above determination is merely an example, and can be changed as necessary along with TAbsSimTh, TSimTh, and TMaySimTh.

[0144] Next, the voice response process executed in step S111 of the above-mentioned operation control process will be described with reference to FIG.

[0145] First, the control unit 110 judges whether the variable TalkOwnerRegistration_Flag is 1 (step S401). If the variable TalkOwnerRegistration_Flag is 1 (step S401; Yes), the control unit 110 assigns 2 to the variable TalkOwnerRegistration_Flag (step S402). Then, the control unit 110 performs TalkOwnerRegistration processing (step S403). The TalkOwnerRegistration processing is a process of registering the voice feature parameters calculated in step S208 in the storage unit 120 as the voice feature parameters of the owner's voice.

[0146] Then, the control unit 110 performs a Talk owner registration completion operation (step S404). The Talk owner registration completion operation is an operation of the robot 200 to inform the owner that the owner's voice has been stored, for example, by making five meows and making a gesture of joy. Then, the voice response process ends and the process proceeds to step S112 of the operation control process.

[0147] On the other hand, if the variable Talk_owner_registration_Flag is not 1 (step S401; No), the control unit 110 generates a random number between 0 and 1, and judges whether the generated random number is greater than (growth value÷10)×0.5 (step S405). If the generated random number is less than or equal to (growth value÷10)×0.5 (step S405; No), the control unit 110 performs Talk general action (step S406). The Talk general action is a general action that the robot 200 performs when spoken to by a user, and specifically, is an action set as an action type when spoken to as an action trigger in the growth table 123 (basic action 1-0, basic action 1-1, or personality action 1-0 in FIG. 10). Then, the control unit 110 ends the voice response process and proceeds to step S112 of the action control process.

[0148] On the other hand, if the generated random number is greater than (growth value÷10)×0.5 (step S405; Yes), the control unit 110 judges whether the variable Talk Absolute_Flag is ON or not (step S407). If the variable Talk Absolute_Flag is ON (step S407; Yes), the control unit 110 assigns OFF to the variable Talk Absolute_Flag (step S408) and performs the Talk Absolute Owner behavior (step S409). The Talk Absolute Owner behavior is a friendly behavior that the robot 200 performs when it recognizes the person who called out to it as the "absolute owner", for example, a behavior of happily moving towards the owner. Then, the control unit 110 ends the voice response process and proceeds to step S112 of the behavior control process.

[0149] On the other hand, if the variable Talk_definitely_Flag is not ON (step S407; No), the control unit 110 judges whether the variable Talk_probably_Flag is ON or not (step S410). If the variable Talk_probably_Flag is ON (step S410; Yes), the control unit 110 assigns OFF to the variable Talk_probably_Flag (step S411) and performs the Talk_probably_owner action (step S412). The Talk_probably_owner action is a friendly action performed when the robot 200 recognizes the person who called out to it as "probably the owner", for example, a gesture of happiness. Then, the control unit 110 ends the voice response process and proceeds to step S112 of the action control process.

[0150] On the other hand, if the variable Talk_Maybe_Flag is not ON (step S410; No), the control unit 110 judges whether the variable Talk_Maybe_Flag is ON or not (step S413). If the variable Talk_Maybe_Flag is ON (step S413; Yes), the control unit 110 assigns OFF to the variable Talk_Maybe_Flag (step S414) and performs the Talk_Maybe_Owner action (step S415). The Talk_Maybe_Owner action is a friendly action performed when the robot 200 recognizes that the person who called out to it "may be the owner", for example, a gesture such as "What?". Then, the control unit 110 ends the voice response process and proceeds to step S112 of the action control process.

[0151] On the other hand, if the variable Talk_Flag is not ON (step S413; No), the control unit 110 judges whether the variable Talk_Repeat_Flag is ON or not (step S416). If the variable Talk_Repeat_Flag is ON (step S416; Yes), the control unit 110 assigns OFF to the variable Talk_Repeat_Flag (step S417) and performs Talk repeat operation (step S418). The Talk repeat operation is an operation that the robot 200 performs when it recognizes that "someone is calling out to it", for example, an operation of making a gesture of "What?" and moving towards the person calling out. Then, the control unit 110 ends the voice response process and proceeds to step S112 of the operation control process.

[0152] On the other hand, if the variable TalkRepeat_Flag is not ON (step S416; No), control unit 110 performs a Talk general operation (step S406), ends the voice response processing, and proceeds to step S112 of the operation control processing.

[0153] Next, the touch response process executed in step S108 of the above-mentioned operation control process will be described with reference to FIG.

[0154] First, the control unit 110 generates a random number that is equal to or greater than 0 and less than 1, and judges whether the generated random number is greater than (growth value÷10)×0.5 (step S501). If the generated random number is equal to or less than (growth value÷10)×0.5 (step S501; No), the control unit 110 performs a general Touch action (step S502). The general Touch action is a general action that the robot 200 performs when the user strokes the body or holds the robot, and more specifically, is an action that is set as an action type when the user strokes the body or holds the robot in the growth table 123 as an action trigger. Then, the control unit 110 ends the touch response process and proceeds to step S109 of the action control process.

[0155] On the other hand, if the generated random number is greater than (growth value÷10)×0.5 (step S501; Yes), the control unit 110 judges whether the variable Touch absolute_Flag is ON or not (step S503). If the variable Touch absolute_Flag is ON (step S503; Yes), the control unit 110 assigns OFF to the variable Touch absolute_Flag (step S504) and performs the Touch absolute caretaker action (step S505). The Touch absolute caretaker action is a friendly action performed when the robot 200 recognizes the person who stroked it as "someone who definitely always takes care of it", for example, a action of making a very happy gesture. Then, the control unit 110 ends the touch response process and proceeds to step S109 of the action control process.

[0156] On the other hand, if the variable Touch_definitely_Flag is not ON (step S503; No), the control unit 110 judges whether the variable Touch_probably_Flag is ON or not (step S506). If the variable Touch_probably_Flag is ON (step S506; Yes), the control unit 110 assigns OFF to the variable Touch_probably_Flag (step S507) and performs the Touch_probably_caretaker action (step S508). The Touch_probably_caretaker action is a friendly action performed when the robot 200 recognizes the person who stroked it as "probably the person who always takes care of it", for example, a gesture of joy. Then, the control unit 110 ends the touch response process and proceeds to step S109 of the action control process.

[0157] On the other hand, if the variable Touch_Maybe_Flag is not ON (step S506; No), the control unit 110 judges whether the variable Touch_Maybe_Flag is ON or not (step S509). If the variable Touch_Maybe_Flag is ON (step S509; Yes), the control unit 110 assigns OFF to the variable Touch_Maybe_Flag (step S510) and performs the Touch_Maybe_Career action (step S511). The Touch_Maybe_Career action is a friendly action performed when the robot 200 recognizes that the person who stroked it "maybe is the person who always takes care of it," and is, for example, an action of making a gesture such as "What?". Then, the control unit 110 ends the touch response process and proceeds to step S109 of the action control process.

[0158] On the other hand, if the variable Touch_Flag is not ON (step S509; No), control unit 110 performs a general Touch operation (step S502), ends the touch response process, and proceeds to step S109 of the operation control process.

[0159] In the above-mentioned operation control process, the subject of the external stimulus for the owner registration function and the call response function is only voice, but this is only one example. The control unit 110 may store the touch characteristic parameters as the owner's characteristics (registered stroking style information) in the storage unit 120 when the robot 200 is repeatedly stroked for a certain registration time (e.g., 3 minutes) from the first power-on of the robot 200.

[0160] In addition, if the robot 200 is repeatedly touched (petted or held) in the same pattern (after owner registration or after a certain registration time (e.g., 3 minutes) has elapsed since the first power-on), it may recognize that it is being touched by someone, regardless of whether the person touching it is the owner, and perform an action in response to the way it is being touched (e.g., making a whining sound).

[0161] Through the above-described operation control process, the control unit 110 acquires external stimulus feature amounts (voice feature parameters and touch feature parameters), stores the acquired external stimulus feature amounts in the storage unit 120 as an external stimulus history (voice history and touch history), calculates a distance (first similarity) between an external stimulus feature amount acquired at a certain timing and an external stimulus feature amount stored in the storage unit 120, and controls the operation of the robot 200 based on the calculated first similarity. Therefore, even if an owner or the like is not registered, if the feature amounts of the way of calling or stroking are similar to the external stimulus feature amounts stored in the storage unit 120 as a history, the robot 200 can recognize that the owner is probably the owner and perform a friendly operation, thereby making the user feel attached to the robot.

[0162] Furthermore, even if the user does not perform a special operation, the control unit 110 can acquire repeated calls and stroking styles performed within a certain registration time after the first power-on as the voice and stroking style (specific stimuli) of the owner (specific user) using the sensor unit 210, acquire specific stimulus feature amounts (registered voice and registered stroking style information) from the acquired specific stimulus (voice and stroking style) and store them in the storage unit 120. Then, the control unit 110 calculates the distance (second similarity) between the external stimulus feature amount acquired at a certain timing and the specific stimulus feature amount stored in the storage unit 120, and controls the operation of the robot 200 based on the calculated second similarity as well. Therefore, even if the user does not consciously register the owner, etc., if the feature amounts of the call and stroking style are similar to the specific stimulus feature amount stored in the storage unit 120, the robot 200 can recognize that it is definitely the owner and perform a friendly operation, and can become attached to the user.

[0163] Furthermore, the control unit 110 acquires a continuous judgment feature, which is an external stimulus feature of the continuous judgment saved number, from the external stimulus history, regardless of whether the voice or stroking manner of a specific user such as the user is stored as a specific stimulus feature in the storage unit 120, calculates a distance (third similarity) between the external stimulus feature acquired at a certain timing and the continuous judgment feature, and controls the operation of the robot 200 based on the calculated third similarity as well. Therefore, even without registering an owner, the robot 200 can be operated in response to a call by repeatedly calling out to the robot 200, and the robot 200 can become attached to the user.

[0164] In addition, the control unit 110 performs two FFTs on the voice data acquired as an external stimulus and calculates a standard number (three) of cepstrums as voice feature parameters, so that voice feature parameters that can recognize the owner with a fairly high degree of accuracy can be acquired despite the small amount of calculation.

[0165] Furthermore, since the control unit 110 obtains acceleration and multiple contact pressures as external stimuli, it can obtain touch feature parameters that combine the orientation (posture) of the robot 200 when it is held and the way it is stroked.

[0166] Furthermore, the control unit 110 can improve the accuracy of determining the orientation (posture) of the robot 200 by using a classifier that has been trained by machine learning.

[0167] (Modification) The present invention is not limited to the above-described embodiment, and various modifications and applications are possible. For example, the tame action may be changed according to the growth value or personality, in the same way as the general action.

[0168] Furthermore, the movement of the robot 200 is not limited to the movement by the driving unit 220 or the output of audio data. If the output unit 230 of the robot 200 is equipped with an LED, the control unit 110 may control the color and brightness of the LED to be turned on as the movement of the robot 200. At least one of the driving unit 220 and the output unit 230 may be included as the controlled unit controlled by the control unit 110, and the output unit 230 may be a sound output unit that outputs only sound, or may output only light using an LED or the like.

[0169] Furthermore, the configuration of emotion map 300 and the method of setting emotion data 121, emotion change data 122, character data, growth value, etc. in the above-mentioned embodiment are merely examples. For example, more simply, the growth value may be set to a value obtained by dividing growth days data 125 by a certain number (whenever the number exceeds 10, the value is always set to 10).

[0170] In the above embodiment, the robot 200 is configured to have a built-in control unit 110 for controlling the robot 200, but the control unit 110 for controlling the robot 200 does not necessarily have to be built into the robot 200. For example, a control device (not shown) equipped with a control unit, a storage unit, and a communication unit may be configured as a device (e.g., a server) separate from the robot 200. In this modified example, the communication unit 130 of the robot 200 and the communication unit of the control device are configured to be able to transmit and receive data to and from each other. The control unit of the control device acquires an external stimulus detected by the sensor unit 210 and 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.

[0171] In this way, when 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 movements are controlled by the control unit 110, and complex movements are controlled by the control unit of the control device via the communication unit 130.

[0172] In the above-described embodiment, the operation program executed by the CPU of the control unit 110 is stored in advance in the ROM or the like of the storage unit 120. However, the present invention is not limited to this, and an operation program for executing the above-described various processes may be implemented in an existing general-purpose computer or the like to function as a device equivalent to the control unit 110 and storage unit 120 of the robot 200 according to the above-described embodiment.

[0173] Such programs may be provided in any manner; for example, they may be stored on a computer-readable recording medium (such as a flexible disk, a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disc)-ROM, an MO (Magneto-Optical Disc), a memory card, a USB memory, etc.) and distributed, or the programs may be stored in storage on a network such as the Internet and provided by downloading them.

[0174] Furthermore, when the above-mentioned processing is performed by sharing between an OS (Operating System) and an application program, or by cooperation between the OS and the application program, only the application program may be stored in a recording medium or storage. It is also possible to superimpose the program on a carrier wave and distribute it over a network. For example, the above-mentioned program may be posted on a bulletin board system (BBS) on a network and distributed over the network. The above-mentioned processing may be performed by starting up this program and executing it under the control of the OS in the same way as other application programs.

[0175] In addition, the control unit 110 may be configured by any processor alone, such as a single processor, a multiprocessor, or a multi-core processor, or may be configured by combining any of these processors with a processing circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).

[0176] The present invention allows various embodiments and modifications without departing from the broad spirit and scope of the present invention. The above-described embodiments are for the purpose of explaining the present invention and do not limit the scope of the present invention. That is, the scope of the present invention is indicated by the claims, not the embodiments. Various modifications made within the scope of the claims and the scope of the invention equivalent thereto are considered to be within the scope of the present invention. The invention described in the original claims of this application is appended below.

[0177] (Appendix 1) A storage unit and a control unit are provided, The control unit is Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in the storage unit; Calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; controlling an operation based on the calculated first similarity; robot.

[0178] (Appendix 2) The control unit is acquiring a specific stimulus feature amount, which is a feature amount of a specific stimulus, which is the external stimulus from a specific user; storing the acquired specific stimulation feature in the storage unit; calculating a second similarity by comparing an external stimulus feature acquired at a certain timing with a specific stimulus feature stored in the storage unit; controlling an operation based also on the calculated second similarity; 1. The robot described in appendix 1.

[0179] (Appendix 3) The control unit is The external stimulus feature quantity is stored in the storage unit as a history in a first-in, first-out manner up to a number of history storage counts; A continuous judgment feature quantity, which is the external stimulus feature quantity having a continuous judgment storage number smaller than the history storage number, is acquired from the newest external stimulus feature quantity stored in the storage unit; calculating a third similarity by comparing the external stimulus feature acquired at a certain timing with the acquired continuity determination feature; controlling an operation based also on the calculated third similarity; 3. The robot according to claim 1 or 2.

[0180] (Appendix 4) The control unit is acquiring audio data as the external stimulus; 4. The robot of claim 1.

[0181] (Appendix 5) The control unit is Fourier transform the audio data to obtain a frequency spectrum; acquiring a part of a cepstrum obtained by performing a Fourier transform on the acquired frequency spectrum as the external stimulus feature quantity; 5. The robot described in appendix 4.

[0182] (Appendix 6) The control unit is Acquiring acceleration and a plurality of contact pressures as the external stimuli; 6. The robot of any one of claims 1 to 5.

[0183] (Appendix 7) The control unit determining an orientation of the robot based on the acceleration; acquiring the external stimulus feature amount from the determined orientation and the plurality of contact pressures; 11. The robot described in appendix 6.

[0184] (Appendix 8) The control unit is determining the orientation of the robot based on the orientation of the robot obtained by a classifier that has been machine-learned from the acceleration history and the acceleration obtained at a certain timing; 11. The robot described in appended claim 7.

[0185] (Appendix 9) Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in a storage unit; Calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; controlling an operation based on the calculated first similarity; A method for controlling a robot.

[0186] (Appendix 10) On the computer, Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in a storage unit; Calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; controlling an operation based on the calculated first similarity; A program that executes a process. [Explanation of symbols]

[0187] 110...control unit, 120...storage unit, 121...emotion data, 122...emotion change data, 123...growth table, 124...action content table, 125...growth days data, 130...communication unit, 200...robot, 201...exterior, 202...decorative parts, 203...fur, 204...head, 205...connection unit, 206...torso, 207...casing, 210...sensor unit, 211, 211H, 211LF, 211LR, 211RF, 211R R...touch sensor, 212...acceleration sensor, 213...gyro sensor, 214...microphone, 220...drive unit, 221...twist motor, 222...up and down motor, 230...output unit, 231...speaker, 240...operation unit, 300...emotion map, 301, 302, 303...frame, 310, 410...origin, 311, 312, 411, 412, 413, 414...axis, 400...personality value radar chart, BL...bus line

Claims

1. A storage unit and a control unit are provided, The control unit is Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in the storage unit; calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; controlling an operation based on the calculated first similarity; robot.

2. The control unit is acquiring a specific stimulus feature amount, which is a feature amount of a specific stimulus, which is the external stimulus from a specific user; storing the acquired specific stimulation feature in the storage unit; calculating a second similarity by comparing an external stimulus feature amount acquired at a certain timing with a specific stimulus feature amount stored in the storage unit; controlling an operation based on the calculated second similarity as well; The robot according to claim 1.

3. The control unit is The external stimulus feature quantity is stored in the storage unit as a history in a first-in, first-out manner up to a number of history storage counts; A continuous judgment feature quantity, which is the external stimulus feature quantity having a continuous judgment storage number smaller than the history storage number, is acquired from the newest external stimulus feature quantity stored in the storage unit; calculating a third similarity by comparing the external stimulus feature acquired at a certain timing with the acquired continuity determination feature; controlling an operation based on the calculated third similarity as well; The robot according to claim 1 or 2.

4. The control unit is acquiring audio data as the external stimulus; The robot according to any one of claims 1 to 3.

5. The control unit is Fourier transform the audio data to obtain a frequency spectrum; acquiring a part of a cepstrum obtained by performing a Fourier transform on the acquired frequency spectrum as the external stimulus feature quantity; The robot according to claim 4.

6. The control unit is Acquiring acceleration and a plurality of contact pressures as the external stimuli; The robot according to any one of claims 1 to 5.

7. The control unit determining an orientation of the robot based on the acceleration; acquiring the external stimulus feature amount from the determined orientation and the plurality of contact pressures; The robot according to claim 6.

8. The control unit is determining the orientation of the robot based on the orientation of the robot obtained by a classifier that has been machine-learned from the acceleration history and the acceleration obtained at a certain timing; The robot according to claim 7.

9. Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in a storage unit; calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; controlling an operation based on the calculated first similarity; A method for controlling a robot.

10. On the computer, Acquire external stimulus feature quantities, which are feature quantities of external stimuli acting from the outside, storing the acquired external stimulus feature amount as a history in a storage unit; calculating a first similarity by comparing an external stimulus feature amount acquired at a certain timing with an external stimulus feature amount stored in the storage unit; controlling an operation based on the calculated first similarity; A program that executes a process.

Citation Information

Patent Citations

  • Sound acquisition apparatus

    JP2008048342A

  • Voice interactive system and voice interactive method

    JP2018091911A

  • Robot, robot control method and program

    JP2019217605A

  • An autonomous robot that recognizes the direction of a sound source

    JP6494062B2

  • Autonomous robot exhibiting shyness

    WO2017175559A1