Control device, robot control method and program

The control device and method allow robots to identify and interact with users through external stimulus analysis, addressing the challenge of user recognition without pre-registered patterns, thereby fostering attachment and enhancing interaction.

JP7819743B2Active Publication Date: 2026-02-25CASIO COMPUTER CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024194202
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-11-06
Publication Date
2026-02-25
Estimated Expiration
2041-09-29

AI Technical Summary

Technical Problem

Existing robot systems struggle to identify and attach to users without pre-registered patterns, limiting user interaction and attachment.

Method used

A control device and method that calculates feature parameters from external stimuli, such as touch and voice, to determine user relationships by comparing them with stored parameters, using a counter variable to assess similarity and execute appropriate actions.

Benefits of technology

Enables the robot to recognize and interact with users effectively, fostering attachment even without pre-registered data, enhancing user interaction and emotional connection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007819743000001
    Figure 0007819743000001
  • Figure 0007819743000002
    Figure 0007819743000002
  • Figure 0007819743000003
    Figure 0007819743000003
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 provides Control device , and a robot control method and program. [Background technology]

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

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2001-157985 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 cannot identify the user, and the user cannot become attached to the robot.

[0005] Therefore, the present invention has been made in view of the above circumstances, Determine the relationship between the user and the robot, including specific users such as owners can Control device The present invention aims to provide a robot control method and program. [Means for solving the problem]

[0006] In order to achieve the above object, the present invention Control device One aspect of A control device for controlling the operation of a robot, The robot External stimuli that act Represents external stimulus Calculate the feature parameters of the data death, The aforementioned calculation was Feature parameters are used as memory parameters. Save it in the memory, calculating a similarity between a feature parameter calculated from external stimulus data acquired at a certain timing and a plurality of past stored parameters stored in the storage unit for each of the stored parameters; counting, as a counter variable, the number of stored parameters whose similarity is equal to or greater than a predetermined threshold value among the plurality of stored parameters in the past stored in the storage unit; a control unit that executes a determination process to determine a relationship between the object that has given the external stimulus and the robot based on the counted counter variable; . [Effects of the Invention]

[0007] According to the present invention, even if data for identifying the user is not registered in advance, the robot can perform an action that will make the user feel attached to it. [Brief explanation of the drawings]

[0008] [Figure 1] 1 is a diagram illustrating an external appearance of a robot according to an embodiment. [Figure 2] FIG. 2 is a cross-sectional view of the robot according to the embodiment, as seen from the side. [Figure 3] FIG. 2 is a diagram illustrating a housing of the robot according to the embodiment. [Figure 4] FIG. 2 is a block diagram showing the functional configuration of the robot according to the embodiment. [Figure 5] 1A and 1B are diagrams illustrating types of postures of a robot according to an embodiment. [Figure 6] 10A and 10B are diagrams illustrating an example of a voice-activated familiarization operation according to the embodiment. [Figure 7] 10A and 10B are diagrams illustrating an example of a tame behavior based on a stroking manner 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. 10 is a diagram illustrating an example of a personality value radar chart according to the embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a growth table according to the embodiment. [Figure 11] FIG. 10 is a diagram illustrating an example of an operation content table according to the embodiment. [Figure 12]10 is a flowchart of an operation control process according to the embodiment. [Figure 13] 10 is a flowchart of a microphone input process according to the embodiment. [Figure 14] 10 is a flowchart of a voice feature parameter calculation process according to the embodiment. [Figure 15] 10 is a flowchart of a process for determining a degree of similarity with a voice history according to the embodiment. [Figure 16] 10 is a flowchart of a touch input process according to the embodiment. [Figure 17] 10 is a flowchart of a process for determining a similarity with a touch history according to the embodiment. [Figure 18] 10 is a flowchart of a voice response process according to the embodiment. [Figure 19] 10 is a flowchart of a touch response process according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, embodiments of the present invention will be described with reference to the drawings, in which the same or corresponding parts are designated by the same reference numerals.

[0010] (Embodiment) As shown in Fig. 1, a robot 200 according to this embodiment is a pet robot modeled after a small animal, and is covered with an exterior 201 equipped with decorative parts 202 that resemble eyes and fluffy fur 203. A housing 207 of the robot 200 is housed 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 206, and the head 204 and the body 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 surface such as the floor, and the direction of the part of the robot 200 that corresponds to its face (the part of the head 204 opposite the torso 206) is referred to as the front, and the direction of the part of the robot 200 that corresponds to its buttocks (the part of the torso 206 opposite the head 204) is referred to as the back. Furthermore, the direction of the part that comes into contact with the surface when the robot 200 is placed normally on the 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-to-down direction is referred to as the width direction. The right side when viewed 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 the head 204.

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

[0014] Furthermore, the connecting portion 205 connects the body portion 206 and the head portion 204 so as to be rotatable (by the vertical motor 222) about a second rotation axis that passes through the connecting portion 205 and extends in the width direction of the body portion 206. The vertical motor 222 rotates the head portion 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 about the second rotation axis. The maximum angle of the upward or downward rotation is arbitrary, but the angle of the head portion 204 when it is not rotated upward or downward is referred to as the vertical reference angle. When the head portion 204 is rotated vertically around the second rotation axis to the vertical reference angle or below the vertical reference angle, the head portion 204 can come into contact with the support 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, which 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, which can detect when the user has stroked or hit the head 204. Furthermore, as shown in Figs. 2 and 3, the body 206 is provided with touch sensors 211LF and 211LR at the front and rear of the left side surface, respectively, and with touch sensors 211RF and 211RR at the front and rear of the right side surface, respectively, which can detect when the user has stroked or hit the body 206.

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

[0017] The robot 200 also includes a microphone 214 on the body 206, which can detect external sounds. The robot 200 also includes a speaker 231 on the body 206, which can be used to make sounds or 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. Furthermore, 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. Furthermore, the touch sensor 211 is provided in both 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 configured with, for example, a CPU (Central Processing Unit) and executes various processes described below using programs stored in the storage unit 120. The control unit 110 supports a multi-thread function that executes multiple processes in parallel, and is therefore able to execute various processes described below in parallel. The control unit 110 also has a clock function and a timer function, and is able to 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), etc. The ROM stores programs to be 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 that stores data that should 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, an audio buffer, an audio history, a touch history, emotion data 121, emotion change data 122, a growth table 123, etc., 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 performs data communication with an external device such as a smartphone.

[0023] The sensor unit 210 includes the touch sensor 211, acceleration sensor 212, gyro sensor 213, and 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. Note that the sensor unit 210 may include sensors other than the touch sensor 211, acceleration sensor 212, gyro sensor 213, and microphone 214. Increasing the types of sensors included in the sensor unit 210 can increase the types of external stimuli that the control unit 110 can acquire. 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 nearby (for example, the owner, someone who regularly takes care of the robot, a stranger, etc.).

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

[0025] The acceleration sensor 212 detects acceleration in three axes of the front-to-back direction, width (left-to-right) direction, and up-to-down direction of the body 206 of the robot 200. The acceleration sensor 212 detects gravitational acceleration when the robot 200 is stationary, and therefore the control unit 110 can detect the current posture of the robot 200 based on the gravitational acceleration detected by the acceleration sensor 212. Furthermore, 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 angular velocities of the three axes of the robot 200. The control unit 110 can determine the vibration state of the robot 200 from the maximum values ​​of the angular velocities of the three axes.

[0027] In this embodiment, in the touch input process described later, the control unit 110 determines whether the current posture of the robot 200 is horizontal, upside down, facing up, facing down, 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. Furthermore, the control unit 110 may determine the posture of the robot 200 using a classifier (such as a neural network) that has been trained by machine learning 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 of the machine learning classifier and the current detection value of the acceleration sensor 212 (acceleration acquired at the timing of determining the posture).

[0029] Furthermore, in a touch input process described later, the control unit 110 acquires 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 acquired strengths in the storage unit 120 as the values ​​of a variable touch_Head (touch strength of the head), a variable touch_Left (touch strength of the left side), a variable touch_Right (touch strength of the right side), and a variable gyro_Level (vibration strength), respectively.

[0030] In the touch input process, the control unit 110 integrates the various detection values ​​acquired as described above and treats them as touch characteristic parameters. That is, the touch characteristic parameters consist of five-dimensional information: the robot 200's posture (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). However, there are significant 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, the touches are determined to be dissimilar, and the influence of the vibration strength is reduced compared to the touch strength. For example, if each touch strength is greater than or equal to 0 and less than or equal to M, the vibration strength is adjusted so that it is greater than or equal to 0 and less than M / A (where A is a real number greater than 1, for example, 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 that stores 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 incremented by 1 each time a new touch feature parameter is stored. After TFIFO_SIZE has 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 each time a new touch feature parameter is stored in TFIFO, the oldest touch feature parameter is deleted from TFIFO. Since TFIFO stores the history of touch feature parameters, it is also called the touch history.

[0033] 4, the microphone 214 detects sounds around the robot 200. Based on the sound components 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 their 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 sampled data, and audio similarity is determined for 16 consecutive audio buffers as one unit. In this embodiment, these 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 / 16,384 Hz = 0.5 seconds of audio data.

[0035] It should be noted that the process in which the control unit 110 stores the sound data acquired from the microphone 214 in the sound buffer is executed in parallel with other processes as a sound buffer storage thread. Also, in this embodiment, in the sound feature parameter calculation process described below, the control unit 110 performs a process for calculating three pieces of cepstrum information from the sampling data of 512 samples in one sound buffer for 16 sound buffers. The control unit 110 treats the 48 (= 3 × 16) pieces of data obtained as a result as 48-dimensional sound 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 robot), and is driven by the control unit 110. By the control unit 110 controlling the driving unit 220, 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 it to the right or left around the first rotation axis). The robot 200 can also move by rotating it sideways with the head 204 facing downward, for example. 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] The above is an example of the drive unit 220, and the drive unit 220 may be equipped with wheels, crawlers, limbs, etc., which allow the robot 200 to move in any direction or 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 (to be 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 be provided with a display such as a liquid crystal display or a light-emitting unit such as an LED (Light Emitting Diode), and an image based on the detected external stimulus or the growth value described later may be displayed on the display or the LED may be illuminated.

[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 person to whom the robot is lent), such as turning the power on / off and adjusting the volume of the output sound. In order to enhance the lifelike feel of 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, namely, 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 called repeatedly within a certain registration time (e.g., three minutes) from the initial power-on, the robot stores the voice feature parameters in the storage unit 120 as the owner's characteristics (registered voice) and notifies the user by an action (e.g., barking five times in a happy manner) that the voice feature parameters have been stored. In this embodiment, only the voice feature parameters are stored in the storage unit 120 as the owner's characteristics as registered voices, but touch feature parameters repeatedly acquired during the registration time may also be stored in the storage unit 120 as the owner's characteristics (registered petting style information) based on the touch feature parameters.

[0044] The call response function is a function in which, when the robot 200 is called repeatedly (after the owner has 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 say, "What?").

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

[0046] Specifically, as shown in Figure 6, for voice-based tameness behavior, if the voice feature parameters of the acquired voice are highly similar to the registered voice, the pet will recognize the person calling out as "definitely the owner" and perform the tameness behavior it would perform if it recognized the person as the owner (for example, a behavior such as approaching the owner willingly) 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] Furthermore, 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), it will recognize the person calling out as "probably the owner (or may be the owner)," and will perform the familiar 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 the person calling out as not being its owner, and will not perform any tameness behavior at all, but will instead perform a general behavior determined based on growth values, etc., with a 100% probability.

[0049] Regarding the tameness behavior based on the way of stroking, as shown in Figure 7, if the similarity between the acquired touch feature parameters and the touch history is very high, the robot will recognize the person stroking it as "someone who will definitely always take care of me," and will perform the tameness behavior (for example, a very happy behavior) that occurs when the robot recognizes the person as someone who will definitely always take care of me 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 friendly behavior (for example, a happy behavior (or a behavior that says "What?")) when it recognizes that it 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 tameness actions, but will instead perform a general action determined based on growth values, etc., with a 100% probability.

[0052] In this embodiment, the tameness behavior is defined separately as one based on voice (FIG. 6) and one based on stroking (FIG. 7), but the definition of the tameness behavior is not limited to this. For example, it is also possible to use both the similarity in the voice history and the similarity in the touch history to define tameness behaviors when both similarities are high, when only the similarity in the voice history is high, and when the similarity in the touch history is high.

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

[0054] Next, among the data stored in the memory unit 120, 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, etc., will be described in order.

[0055] The emotion data 121 is data for making the robot 200 have simulated emotions, and is data (X, Y) that indicates coordinates on the emotion map 300. As shown in FIG. 8, the emotion map 300 is expressed as a two-dimensional coordinate system with the X axis 311 representing relief (anxiety) and the Y axis 312 representing excitement (lethargy). The origin 310 (0, 0) on the emotion map represents a normal emotion. The larger the absolute value of the positive X coordinate value (X value), the higher the relief, and the larger the absolute value of the positive Y coordinate value (Y value), the higher the excitement. The larger the absolute value of the negative X value, the higher the anxiety, and the larger the absolute value of the negative Y value, the higher the 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, with one value set as emotion data 121. Alternatively, emotion map 300 may be defined in a coordinate system of three or more dimensions by adding other axes, with the same number of values ​​set as emotion data 121 as the number of dimensions of emotion map 300.

[0057] In this embodiment, as shown in frame 301 of FIG. 8 , the initial size of the emotion map 300 has a maximum value of 100 and a minimum value of −100 for both the X and Y values. Then, during the first period, each time the number of days of simulated growth of the robot 200 increases by one day, both the maximum and minimum values ​​of the emotion map 300 are increased by 2. Here, the first period is the 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 refers to the first activation by a user after the robot 200 is shipped from the factory. When the number of days of growth reaches 25 days, the maximum values ​​of the X and Y values ​​become 150 and the minimum values ​​become −150, as shown in frame 302 of FIG. 8 . Then, when the first period (50 days in this example) has passed, the pseudo-growth of the robot 200 is deemed complete, and the maximum value of both the X and Y values ​​becomes 200 and the minimum value becomes -200, as shown in box 303 in FIG. 8, and the size of the emotion map 300 is fixed.

[0058] Emotion change data 122 is data that sets the amount of change by which each of the X value and Y value of emotion data 121 is increased or decreased. In this embodiment, emotion change data 122 corresponding to the X of emotion data 121 includes DXP, which increases the X value, and DXM, which decreases the X value, and emotion change data 122 corresponding to the Y value of emotion data 121 includes DYP, which increases the Y value, and DYM, which decreases the Y value. In other words, 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 robot 200 is changed. DXP: Ease of feeling at ease (the tendency for the X value on the emotion map to change in a positive direction) DXM: Anxiety (the tendency for the X value on the emotional map to change in a negative direction) DYP: Excitability (the tendency for the Y value on the emotion map to change in a positive direction) DYM: Tendency to become lethargic (the tendency for 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 will have various personalities depending on how the user interacts with the robot 200. In other words, the personality of the robot 200 will be formed differently for each individual depending on how the user interacts with the robot 200.

[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 calculated by subtracting 10 from DXP, which indicates the tendency to feel at ease; the personality value (shy) is calculated by subtracting 10 from DXM, which indicates the tendency to become anxious; the personality value (active) is calculated by subtracting 10 from DYP, which indicates the tendency to become excited; and the personality value (spoiled) is calculated by subtracting 10 from DYM, which indicates the tendency to become lethargic. As a result, for example, as shown in FIG. 9 , a personality value radar chart 400 can be generated by plotting the personality value (cheerful) on axis 411, the personality value (active) on axis 412, the personality value (shy) on axis 413, and the personality value (spoiled) on axis 414.

[0061] Since the initial value of each personality value is 0, the initial personality of robot 200 is represented by origin 410 of personality value radar chart 400. Then, as robot 200 grows, each personality value changes up to an upper limit of 10 depending on external stimuli (how the user interacts with robot 200) detected by 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 pseudo-degree of growth of the robot 200. Then, the control unit 110 controls the robot 200 so that variations occur in the operation details of the robot 200 as the robot 200 pseudo-grows (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 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 also 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 sound is heard." Then, by referring to the item in the growth table 123 shown in FIG. 10 where the action trigger is "a loud sound is heard" and the growth value is 8, it is found that the action selection probabilities are 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] In other words, 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 specifies the types of actions, including tame actions.

[0067] Furthermore, the growth table 123 can take any form as long as it can be defined as a function (growth function) that returns the action selection probability for 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 specific action content for each action type defined in the growth table 123 is recorded. However, for personality actions, 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 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 since 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 movement 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 movement control process is a process in which the control unit 110 controls the movement (movements, cries, etc.) of the robot 200 based on the detected values ​​from the sensor unit 210, etc. When the user turns on the power of the robot 200, a thread for this movement control process starts to be executed in parallel with other necessary processes. The movement control process controls the drive unit 220 and the output unit 230 (sound output unit), and the movement of the robot 200 is expressed and sounds such as cries are output.

[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, TalkOwnerRegistration_Flag, TalkAbsolute_Flag, TalkMaybe_Flag, TalkMaybe_Flag, TalkRepeat_Flag, TalkGeneralMovement_Flag, Touch_Flag, TouchAbsolute_Flag, TouchMaybe_Flag, TouchMaybe_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, for ease of understanding, the microphone input process and the touch input process are described as separate processes, but the process of acquiring an external stimulus from various sensors included in the sensor unit 210 may be executed as one process (external input process).

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

[0074] If an external stimulus is present (step S104; Yes), the control unit 110 acquires emotion change data 122 to be added to or subtracted from the emotion data 121 in accordance with the external stimulus acquired through 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, and 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, control unit 110 sets emotion data 121 according to emotion change data 122 acquired in step S105 (step S106). Specifically, for example, if DXP was acquired as emotion change data 122 in step S105, control unit 110 adds DXP of emotion change data 122 to the X value of emotion data 121. However, if the value (X value, Y value) of emotion data 121 exceeds the maximum value of emotion map 300 when emotion change data 122 is added, the value of emotion data 121 is set to the maximum value of emotion map 300. Also, if the value of emotion data 121 becomes less than the minimum value of emotion map 300 when emotion change data 122 is subtracted, the value of emotion data 121 is set to the minimum value of emotion map 300.

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

[0077] Petting the head 204 (feels reassuring): X = X + DXP Hit on the head 204 (makes me anxious): X=X-DXM (These external stimuli can be detected by the touch sensor 211 on the head 204.) Body part 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 body 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 (irritating): 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 an external stimulus such as a touch has been applied in the touch input process (step S107). Specifically, the control unit 110 determines whether or not Touch_Flag is ON. If a touch or the like has been applied (step S107; Yes), the control unit 110 executes touch response processing (step S108). The touch response processing will be described in detail 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 determines whether there is a voice as an external stimulus in the microphone input process (step S110). Specifically, it is sufficient to determine 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 voice response process will be described in detail 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 determines whether there is a loud sound as an external stimulus in the microphone input process (step S113). Specifically, it is determined whether BigSound_Flag is ON or not. If there is a loud sound (step S113; Yes), the control unit 110 executes an action in response to the loud sound (step S114). That is, the control unit 110 executes an action (basic action 2-0, etc.) corresponding 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, the 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 determines whether or not to perform a spontaneous movement such as breathing (step S117).While any method for determining whether or not to perform a spontaneous movement may be used, in this embodiment, the determination in step S117 becomes Yes every breathing cycle (for example, every 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 the process 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 determines 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 determines that it is within the first period if the growth day number 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). Learning the emotion change data 122 specifically refers to the 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 at least 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 at least 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 at least 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 at least once.

[0087] However, if each value of the emotion change data 122 becomes too large, the amount of change in each 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 and not more than this. 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 high, the value added to the emotion change data 122 may be increased.

[0088] Returning to step S121 in Fig. 12, expanding the emotion map specifically means that 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 the expansion may be by 3 or more, or 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 audio buffer to the variable ML (step S201). Then, the control unit 110 determines whether the value of the variable ML is greater than BigSoundTh (step S202). Note that a value (loud sound threshold) is set in advance for BigSoundTh, above which the robot 200 will be surprised by a sound louder than this value. If the variable ML is greater 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 action control process.

[0092] On the other hand, if the variable ML is equal to or less than BigSoundTh (step S202; No), the control unit 110 determines whether the value of the variable ML is greater than TalkSoundTh. Note that a value (speech threshold) below which the robot 200 cannot hear as speech is preset for TalkSoundTh. If the variable ML is equal to or less than TalkSoundTh (step S204; No), the control unit 110 ignores the sound in the current audio 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 determines 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 has been stored.

[0094] On the other hand, if the number of audio buffers reaches the reference number (step S205; No), the control unit 110 determines whether the sounds stored in the reference number of audio buffers are noise (step S206). While a talking voice generates a sound at a level higher than TalkSoundTh for a certain period of time (for example, 0.1 seconds or more), noise is often a single, momentary sound. Therefore, the control unit 110 can determine whether the sounds stored in the audio buffers are noise by utilizing the characteristics of such sounds.

[0095] For example, the control unit 110 first determines whether the maximum level of the sampling data stored in each of the first noise-determined 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, the control unit 110 determines that the sound stored in the current reference number of audio buffers is noise, and if the maximum levels of all of the noise-determined number of audio buffers (i.e., audio buffer [0], audio buffer [1], and audio buffer [2]) are greater than TalkSoundTh, it determines that the sound 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 speech buffers are not noise (step S206; No), the control unit 110 assigns ON to the variable TalkSound_Flag, which indicates that speech has been input (step S207), and performs speech feature parameter calculation processing (step S208). The speech feature parameter calculation processing is processing for calculating speech feature parameters by calculating a cepstrum from the sampling data stored in the speech buffers, 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 (voice feature parameters acquired at the timing when this process is performed) 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 determines that it is a "repeated call," and if one or less is less than VsimTh, it determines that it is not a "repeated call." The voice history for the most recent number of consecutive judgments saved is also called a consecutive judgment feature.

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

[0101] If it is owner registration (step S211; Yes), the control unit 110 assigns 1 to the variable Talk_Owner_Registration_Flag (step S212) and proceeds to step S214. If it is not owner registration (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 a 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 operation 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 VsimTh or more.

[0103] Then, the control unit 110 determines whether the determination result of the owner's voice determination process is "the owner's voice" (step S216). If it is the owner's voice (step S216; Yes), the control unit 110 assigns ON to the variable TalkAbsolute_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 comparing the voice feature parameters calculated in the voice feature parameter calculation process with the voice history to find the similarity, and returning an integer between 0 and 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 determines whether the result returned in the process of determining the degree of 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 TalkMaybe_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 in the process of determining the similarity with the voice history is not 2 (step S219; No), the control unit 110 determines whether the result returned in 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_Maybe_Flag, which indicates that the robot 200 has recognized that the voice may be that of its 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 will 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 α[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, if 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 (three in this embodiment) of components obtained by FFT, excluding the DC component (the first one) from the beginning (step S237). Here, a cepstrum is obtained, and 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 cepstra 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] By the above speech feature parameter calculation process, speech 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 determines whether the variable VFIFO_Size, which stores the number of stored voice histories, 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 determination cannot be performed, so the control unit 110 returns "0" (indicating no similarity), ends the similarity determination 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 (VFIFO[0] to VFIFO[VFIFO_Size-1]) as an array variable (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). The control unit 110 then determines 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 greater than or equal to VSimTh (step S254; No), the control unit 110 proceeds to step S256.

[0119] Then, in step S256, the control unit 110 determines whether the value of the variable d[i] is less than VMaySimTh (a voice middle level similarity threshold). Note that VMaySimTh (a voice middle level similarity threshold) is preset to a value greater than VSimTh (a 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 greater than VFIFO_Size (step S259; No), the control unit 110 determines whether the ratio of the variable simCnt to the variable VFIFO_Size exceeds 20% (step S260). If the ratio of the variable simCnt to the variable VFIFO_Size exceeds 20% (step S260; Yes), 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 determination 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 determines whether the ratio of the variable maysimCnt to the variable VFIFO_Size exceeds 30% (step S261). If the ratio of the variable maysimCnt to the variable VFIFO_Size exceeds 30% (step S261; Yes), the similarity between the voice feature parameter calculated in step S208 and the voice history is medium, so the control unit 110 returns "1", ends the similarity determination 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 needed 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 the 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 feature parameters (step S304). As described above, the touch feature parameters consist of five-dimensional information: the robot 200's posture (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 determine the 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 in detail later. The control unit 110 then determines whether the result returned in the similarity determination process with the touch history is 3 (step S306). If the returned value is 3 (step S306; Yes), the control unit 110 assigns ON to the variable TouchAbsolute_Flag, which indicates that the robot 200 has recognized that the way of touching (stroking) is definitely that of someone 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 returned value is 2 (step S308; Yes), the control unit 110 assigns ON to the variable TouchMaybe_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 returned value 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 someone who always takes care of it (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 the 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 determines 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 determination cannot be performed, so the control unit 110 returns "0" (indicating no similarity), ends the similarity determination process with the touch history, and proceeds to step S306 of the touch input process.

[0134] If TFIFO_Size is greater than the minimum touch reference number (step S351; Yes), the 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 the touch history TFIFO as an array variable (TFIFO[0] to TFIFO[TFIFO_Size-1]) (step S352).

[0135] Then, the control unit 110 determines whether 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 postures (dir) match (step S353; Yes), the control unit 110 The controller 110 calculates the distance (L2 norm) between the touch feature parameter calculated in step S304 and TFIFO[i] and assigns the distance to the variable d[i] (step S354). The controller 110 then determines whether the value of the variable d[i] is less than TAbsSimTh (ultra-high touch similarity threshold) (step S355). Note that the TAbsSimTh (ultra-high touch similarity threshold) is preset to a value smaller than the TSimTh (touch similarity threshold) (described later). If d[i] is less than TAbsSimTh (step S355; Yes), the controller 110 adds 1 to the variable abssimCnt (step S356) and proceeds to step S357. If d[i] is greater than or equal to TAbsSimTh (step S355; No), the controller 110 proceeds to step S357.

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

[0138] Then, in step S359, control unit 110 determines whether the value of variable d[i] is less than TMaySimTh (medium-level touch similarity threshold). Note that TMaySimTh (medium-level touch similarity threshold) is preset to a value greater than TSimTh (touch similarity threshold). If d[i] is less than TMaySimTh (step S359; Yes), control unit 110 adds 1 to variable maysimCnt (step S360) and proceeds to step S361. If d[i] is greater than or equal to TMaySimTh (step S359; No), 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 greater than TFIFO_Size (step S362; No), the control unit 110 determines whether the ratio of the variable abssimCnt to the variable TFIFO_Size exceeds 30% (step S363). If the ratio of the variable abssimCnt to the variable TFIFO_Size exceeds 30% (step S363; Yes), 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 determination 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), control unit 110 determines whether the ratio of the variable simCnt to the variable TFIFO_Size exceeds 30% (step S364). If the ratio of the variable simCnt to the variable TFIFO_Size exceeds 30% (step S364; Yes), this means that the similarity between the touch feature parameter calculated in step S304 and the touch history is high, so control unit 110 returns "2", ends the similarity determination 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), control unit 110 determines whether the ratio of the variable maysimCnt to the variable TFIFO_Size exceeds 30% (step S365). If the ratio of the variable maysimCnt to the variable TFIFO_Size exceeds 30% (step S365; Yes), the similarity between the touch feature parameter calculated in step S304 and the touch history is medium, so control unit 110 returns "1", ends the similarity determination 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 needed 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 determines 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 voice feature parameters of the owner's voice.

[0146] Then, the control unit 110 performs a Talk owner registration completion action (step S404). The Talk owner registration completion action is an action of the robot 200 to inform the owner that the owner's voice has been stored, such as making five meows and making a gesture of joy. Then, the voice response process ends and the process proceeds to step S112 of the action 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 greater than or equal to 0 and less than 1, and determines whether the generated random number is greater than (growth value ÷ 10) × 0.5 (step S405). If the generated random number is less than or equal to (growth value ÷ 10) × 0.5 (step S405; No), the control unit 110 performs a 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 in the growth table 123 as an action type when spoken to as an action trigger (in FIG. 10, basic action 1-0, basic action 1-1, or personality action 1-0). 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 determines whether the variable Talk_absolute_Flag is ON (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," such as a behavior of willingly moving toward the owner. Then, the control unit 110 ends the voice response processing and proceeds to step S112 of the behavior control processing.

[0149] On the other hand, if the variable Talk_Definitely_Flag is not ON (step S407; No), the control unit 110 determines whether the variable Talk_Maybe_Flag is ON (step S410). If the variable Talk_Maybe_Flag is ON (step S410; Yes), the control unit 110 assigns OFF to the variable Talk_Maybe_Flag (step S411) and performs the Talk_Maybe_Owner behavior (step S412). The Talk_Maybe_Owner behavior is a friendly behavior performed when the robot 200 recognizes that the person calling out to it is "probably the owner," such as a behavior of making a happy gesture. Then, the control unit 110 ends the voice response processing and proceeds to step S112 of the behavior control processing.

[0150] On the other hand, if the variable TalkMaybe_Flag is not ON (step S410; No), the control unit 110 determines whether the variable TalkMaybe_Flag is ON (step S413). If the variable TalkMaybe_Flag is ON (step S413; Yes), the control unit 110 assigns OFF to the variable TalkMaybe_Flag (step S414) and performs the TalkMaybe_Owner action (step S415). The TalkMaybe_Owner action is a friendly action performed when the robot 200 recognizes that the person calling out to it "maybe be the owner," such as a gesture of "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_Maybe_Flag is not ON (step S413; No), the control unit 110 determines whether the variable Talk_Repeat_Flag is ON (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 a Talk repeat action (step S418). The Talk repeat action is an action that the robot 200 performs when it recognizes that "someone is calling out to it," such as making a gesture that says "What?" and moving toward the person calling out. Then, the control unit 110 ends the voice response process and proceeds to step S112 of the action control process.

[0152] On the other hand, if the variable TalkRepeat_Flag is not ON (step S416; No), control unit 110 performs a general Talk 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-described operation control process will be described with reference to FIG.

[0154] First, the control unit 110 generates a random number greater than or equal to 0 and less than 1, and determines whether the generated random number is greater than (growth value ÷ 10) × 0.5 (step S501). If the generated random number is less than or equal to (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 or holds the robot. Specifically, the general Touch action is an action set in the growth table 123 as an action trigger when the robot 200 is stroked or held. 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 determines whether the variable TouchAbsolute_Flag is ON (step S503). If the variable TouchAbsolute_Flag is ON (step S503; Yes), the control unit 110 assigns OFF to the variable TouchAbsolute_Flag (step S504) and performs the TouchAbsolute caretaker behavior (step S505). The TouchAbsolute caretaker behavior is a friendly behavior performed when the robot 200 recognizes the person who stroked it as "someone who will definitely always take care of me," and is, for example, a behavior of making a very happy gesture. Then, the control unit 110 ends the touch response processing and proceeds to step S109 of the behavior control processing.

[0156] On the other hand, if the variable Touch_absolute_Flag is not ON (step S503; No), the control unit 110 determines whether the variable Touch_probably_Flag is ON (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 that the person who stroked it is "probably someone who always takes care of it," and is, for example, an action of making a happy gesture. 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 TouchMaybe_Flag is not ON (step S506; No), the control unit 110 determines whether the variable TouchMaybe_Flag is ON (step S509). If the variable TouchMaybe_Flag is ON (step S509; Yes), the control unit 110 assigns OFF to the variable TouchMaybe_Flag (step S510) and performs the TouchMaybe_Caregiver action (step S511). The TouchMaybe_Caregiver action is a friendly action performed when the robot 200 recognizes that the person who stroked it "maybe be someone 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-described operation control process, the external stimulus for the owner registration function and the call response function is limited to voice, but this is merely an example. The control unit 110 may store the touch characteristic parameters in the storage unit 120 as the owner's characteristics (registered petting style information) when the robot 200 is repeatedly petted for a certain registered time (e.g., 3 minutes) from the initial power-on of the robot 200.

[0160] Furthermore, 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 may perform an action in response to the way it is being touched (e.g., making a whining noise).

[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 the distance (first similarity) between the external stimulus feature amount acquired at a certain timing and the 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 becoming attached to the user.

[0162] Furthermore, even if the user does not perform any special operation, the control unit 110 can acquire repeated calls and stroking styles (specific stimuli) made within a certain registration time after the initial power-on 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 behavior 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 calls and stroking styles are similar to the specific stimulus feature amounts stored in the storage unit 120, the robot 200 can definitely recognize the owner and perform a friendly behavior, thereby becoming attached to the user.

[0163] Furthermore, 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, 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, calculates the distance (third similarity) between the external stimulus feature acquired at a certain timing and the continuous judgment feature, and controls the behavior of the robot 200 based on the calculated third similarity as well. Therefore, even without registering an owner or the like, by repeatedly calling out to the robot 200, the robot 200 can perform an action in response to the call, and the user can become attached to the robot.

[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 fairly high accuracy can be acquired despite the small amount of calculation.

[0165] Furthermore, the control unit 110 acquires acceleration and multiple contact pressures as external stimuli, and can therefore acquire 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 machine-learned.

[0167] (Variation) 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, just like 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 or brightness of the lit LED as the movement of the robot 200. The controlled units controlled by the control unit 110 may include at least one of the driving unit 220 and the output unit 230, 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 methods of setting emotion data 121, emotion change data 122, personality data, growth value, etc. in the above-described 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 (if the value exceeds 10, it is always set to 10).

[0170] Furthermore, in the above-described 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-in to 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 modification, the communication unit 130 of the robot 200 and the communication unit of the control device are configured to be able to send and receive data to and from each other. The control unit of the control device acquires external stimuli detected by the sensor unit 210 and controls the drive unit 220 and 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, so that the computer functions 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, by storing them 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, or a USB memory stick) and distributing them, or by storing the programs in storage on a network such as the Internet and providing them by downloading them.

[0174] Furthermore, when the above-mentioned processing is performed by sharing the work 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 on 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 program may be posted on a bulletin board system (BBS) on a network and distributed over the network. The program may then be started and executed under the control of the OS in the same way as other application programs, thereby enabling the above-mentioned processing to be performed.

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

[0176] The present invention allows for various embodiments and modifications without departing from the broad spirit and scope of the present invention. Furthermore, the above-described embodiments are intended to illustrate the present invention and are not intended to limit the scope of the present invention. That is, the scope of the present invention is defined not by the embodiments but by the claims. Various modifications made within the scope of the claims and the meaning of the invention equivalent thereto are considered to be within the scope of the present invention. The invention as originally described in the claims of this application is set forth below.

[0177] (Appendix 1) A storage unit and a control unit are provided, The control unit 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 acquired at a certain timing with an external stimulus feature stored in the storage unit; controlling an operation based on the calculated first similarity; robot.

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

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

[0180] (Appendix 4) The control unit acquiring audio data as the external stimulus; 4. The robot of any one of claims 1 to 3.

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

[0182] (Appendix 6) The control unit 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 the orientation of the robot based on the acceleration; acquiring the external stimulus feature amount from the determined orientation and the plurality of contact pressures; 1. The robot described in Appendix 6.

[0184] (Appendix 8) The control unit determining the orientation of the robot based on the orientation of the robot obtained by a classifier that has undergone machine learning from the acceleration history and the acceleration acquired at a certain timing; 10. The robot described in Appendix 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 acquired at a certain timing with an external stimulus feature stored in the storage unit; controlling an operation based on the calculated first similarity; Robot control method.

[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 acquired at a certain timing with an external stimulus feature 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...hair, 204...head, 205...connection unit, 206...torso unit, 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 control device for controlling the operation of a robot, comprising: calculating feature parameters of external stimulus data representing external stimuli acting on the robot; storing the calculated feature parameters as stored parameters in a storage unit; calculating a similarity between a feature parameter calculated from external stimulus data acquired at a certain timing and a plurality of past stored parameters stored in the storage unit for each of the stored parameters; counting, as a counter variable, the number of stored parameters whose similarity is equal to or greater than a predetermined threshold value among the plurality of stored parameters in the past stored in the storage unit; a control unit that executes a determination process to determine a relationship between an object that has given the external stimulus and the robot based on the counted counter variable; Control device.

2. The control unit The determination process is performed based on a ratio of the number of stored external stimuli corresponding to each of the plurality of past stored parameters stored in the storage unit to the number counted as the counter variable. The control device according to claim 1 .

3. The control unit When the external stimulus data is audio data, Calculating characteristic parameters of external stimulus data representing external stimuli from a specific user; storing the calculated feature parameters as registration parameters in the storage unit; comparing feature parameters calculated from external stimulus data acquired at a certain timing with the registered parameters; When it is determined based on the comparison result that the target is not the specific user, the determination process is executed. The control device according to claim 1 or 2.

4. The control unit controlling the operation of the robot based on the relationship determined by the determination process; The control device according to any one of claims 1 to 3.

5. Calculating feature parameters of external stimulus data representing external stimuli acting on the robot; storing the calculated feature parameters as stored parameters in a storage unit; calculating a similarity between a feature parameter calculated from external stimulus data acquired at a certain timing and a plurality of past stored parameters stored in the storage unit for each of the stored parameters; counting, as a counter variable, the number of stored parameters whose similarity is equal to or greater than a predetermined threshold value among the plurality of stored parameters in the past stored in the storage unit; determining a relationship between the object that has given the external stimulus and the robot based on the counted counter variable; Robot control method.

6. On the computer, Calculating feature parameters of external stimulus data representing external stimuli acting on the robot; storing the calculated feature parameters as stored parameters in a storage unit; calculating a similarity between a feature parameter calculated from external stimulus data acquired at a certain timing and a plurality of past stored parameters stored in the storage unit for each of the stored parameters; counting, as a counter variable, the number of stored parameters whose similarity is equal to or greater than a predetermined threshold value among the plurality of stored parameters in the past stored in the storage unit; determining a relationship between the object that has given the external stimulus and the robot based on the counted counter variable; A program that executes a process.

Citation Information

Patent Citations

  • Steering neutral position determinating method

    JP1989094062A

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

    JP2001157985A

  • Sound acquisition apparatus

    JP2008048342A

  • Voice interactive system and voice interactive method

    JP2018091911A

  • Robot, robot control method and program

    JP2019217605A