Patent Description:
In the related art, various types of robots have been developed but, in recent years, advancements have been made in the development of not only industrial robots, but also of consumer robots such as pet robots. For example, Unexamined <CIT> describes a robot device, provided with a pressure sensor, that determines, by a pattern of a detected pressure detection signal, whether a person that contacts the robot device is a user that is registered in advance.

The robot device described in Patent Literature <NUM> determines, on the basis of the pattern of the detected pressure detection signal from the pressure sensor, whether the person who pets the robot device is the user. However, the "user" in Unexamined <CIT> is a person for which the pattern of the pressure detection signal is registered in advance, and is not limited to a person based on the intimacy with the robot device. Consequently, there is a problem in that it is difficult to control the robot device so as to perform actions based on the relationship between the user and the robot device.

<CIT> discloses a robot includes a movement determining unit that determines a direction of movement, a drive mechanism that executes a specified movement, and a familiarity managing unit that updates familiarity with respect to a moving object. The robot moves away from a user with low familiarity, and approaches a user with high familiarity. Familiarity changes in accordance with a depth of involvement between a user and the robot.

<CIT> discloses an apparatus control device includes: at least one processor; and at least one first memory that stores a program executed by the processor, in which the processor acquires input data based on at least one of acceleration and angular velocity generated by application of an external force to an apparatus, classifies a plurality of the acquired input data into a plurality of clusters by an unsupervised clustering method, acquires relationship data representing relationship between the acquired input data and the plurality of classified clusters, and controls movement of the apparatus based on the acquired relationship data.

<CIT> discloses a communication robot implementing various communication actions according to the degree of intimacy with a communication target. The communication robot takes a communication action by implementing an action module comprised of a series of action programs, and has: a user intimacy degree storage means of storing the degree of intimacy with a user as a target; a sensing intimacy degree calculation means of calculating the degree of sensing intimacy based on sensing information obtained by sensing present reactions of the user such as a distance of interaction with a user, a contact status with the user, user's facial expressions and a position of a user's line of sight; a communication intimacy degree calculation means of calculating the degree of communication intimacy, based on the degree of user intimacy and the degree of sensing intimacy; and an action module implementation information storage means of storing action module implementation information in implementing an action corresponding to the degree of communication intimacy.

The present disclosure is made with the view of the above situation, and an objective of the present disclosure is to make it possible to cause a device that executes actions to perform an action that takes the relationship between the device and a subject applying an external stimulus to the device into consideration.

The present invention is directed to a action control device according to claim <NUM>, an action control method according to claim <NUM>, and a program according to claim <NUM>. Additional features and embodiments of the invention are defined in the dependent claims.

According to the present disclosure, it is possible to cause a device that executes actions to perform an action that takes the relationship between the device and a subject applying an external stimulus to the device into consideration.

A more complete understanding of this application can be obtained when the following detailed description is considered in conjunction with the following drawings, in which:.

<FIG> is a flowchart of loud sound response familiar action processing according to Embodiment <NUM>.

Hereinafter, embodiments of the present disclosure are described while referencing the drawings. Note that, in the drawings, identical or corresponding components are denoted with the same reference numerals.

An embodiment in which an action control device according to Embodiment <NUM> is applied to a robot <NUM> illustrated in <FIG> is described while referencing the drawings. As illustrated in <FIG>, the robot <NUM> according to the embodiment is a pet robot that resembles a small animal. The robot <NUM> is covered with an exterior <NUM> provided with bushy fur <NUM> and decorative parts <NUM> resembling eyes. A housing <NUM> of the robot <NUM> is accommodated in the exterior <NUM>. As illustrated in <FIG>, the housing <NUM> of the robot <NUM> includes a head <NUM>, a coupler <NUM>, and a torso <NUM>. The head <NUM> and the torso <NUM> are coupled by the coupler <NUM>.

Regarding the torso <NUM>, as illustrated in <FIG>, a twist motor <NUM> is provided at a front end of the torso <NUM>, and the head <NUM> is coupled to the front end of the torso <NUM> via the coupler <NUM>. The coupler <NUM> is provided with a vertical motor <NUM>. Note that, in <FIG>, the twist motor <NUM> is provided on the torso <NUM>, but may be provided on the coupler <NUM> or on the head <NUM>.

The coupler <NUM> couples the torso <NUM> and the head <NUM> so as to enable rotation (by the twist motor <NUM>) around a first rotational axis that passes through the coupler <NUM> and extends in a front-back direction of the torso <NUM>. The twist motor <NUM> rotates the head <NUM>, with respect to the torso <NUM>, clockwise (right rotation) within a forward rotation angle range around the first rotational axis (forward rotation), counter-clockwise (left rotation) within a reverse rotation angle range around the first rotational axis (reverse rotation), and the like. Note that, in this description, the term "clockwise" refers to clockwise when viewing the direction of the head <NUM> from the torso <NUM>. A maximum value of the angle of twist rotation to the right (right rotation) or the left (left rotation) can be set as desired, and the angle of the head <NUM> in a state, as illustrated in <FIG>, in which the head <NUM> is not twisted to the right or the left is referred to as a "twist reference angle.

The coupler <NUM> couples the torso <NUM> and the head <NUM> so as to enable rotation (by the vertical motor <NUM>) around a second rotational axis that passes through the coupler <NUM> and extends in a width direction of the torso <NUM>. The vertical motor <NUM> rotates the head <NUM> upward (forward rotation) within a forward rotation angle range around the second rotational axis, downward (reverse rotation) within a reverse rotation angle range around the second rotational axis, and the like. A maximum value of the angle of rotation upward or downward can be set as desired, and the angle of the head <NUM> in a state, as illustrated in <FIG>, in which the head <NUM> is not rotated upward or downward is referred to as a "vertical reference angle. " Note that, in <FIG>, an example is illustrated in which the first rotational axis and the second rotational axis are orthogonal to each other, but a configuration is possible in which the first and second rotational axes are not orthogonal to each other.

The robot <NUM> includes a touch sensor <NUM> that can detect petting or striking of the robot <NUM> by a user. More specifically, as illustrated in <FIG>, the robot <NUM> includes a touch sensor <NUM> on the head <NUM>. The touch sensor <NUM> can detect petting or striking of the head <NUM> by the user. Additionally, as illustrated in <FIG> and <FIG>, the robot <NUM> includes a touch sensor 211LF and a touch sensor 211LR respectively on the front and rear of a left-side surface of the torso <NUM>, and a touch sensor 211RF and a touch sensor 211RR respectively on the front and rear of a right-side surface of the torso <NUM>. These touch sensors 211LF, 211LR, 211RF, 211RR can detect petting or striking of the torso <NUM> by the user.

The robot <NUM> includes an acceleration sensor <NUM> on the torso <NUM>. The acceleration sensor <NUM> can detect an attitude (orientation) of the robot <NUM>, and can detect being picked up, the orientation being changed, being thrown, and the like by the user. The robot <NUM> includes a gyrosensor <NUM> on the torso <NUM>. The gyrosensor <NUM> can detect vibrating, rolling, rotating, and the like of the robot <NUM>.

The robot <NUM> includes a microphone <NUM> on the torso <NUM>. The microphone <NUM> can detect external sounds. Furthermore, the robot <NUM> includes a speaker <NUM> on the torso <NUM>. The speaker <NUM> can be used to emit animal sounds, sing songs, and the like.

Note that, in the present embodiment, the acceleration sensor <NUM>, the gyrosensor <NUM>, the microphone <NUM>, and the speaker <NUM> are provided on the torso <NUM>, but a configuration is possible in which all or a portion of these components are provided on the head <NUM>. Note that a configuration is possible in which, in addition to the acceleration sensor <NUM>, the gyrosensor <NUM>, the microphone <NUM>, and the speaker <NUM> provided on the torso <NUM>, all or a portion of these components are also provided on the head <NUM>. The touch sensor <NUM> is provided on each of the head <NUM> and the torso <NUM>, but a configuration is possible in which the touch sensor <NUM> is provided on only one of the head <NUM> and the torso <NUM>. Moreover, a configuration is possible in which a plurality of any of these components is provided.

Next, the functional configuration of the robot <NUM> is described. As illustrated in <FIG>, the robot <NUM> includes an action control device <NUM>, a sensor <NUM>, a driver <NUM>, a sound outputter <NUM>, and an operation inputter <NUM>. Moreover, the action control device <NUM> includes a controller <NUM>, a storage <NUM>, and a communicator <NUM>. In <FIG>, the action control device <NUM>, and the sensor <NUM>, the driver <NUM>, the sound outputter <NUM>, and the operation inputter <NUM> are connected to each other via a bus line BL, but this is merely an example. A configuration is possible in which the action control device <NUM>, and the sensor <NUM>, the driver <NUM>, the sound outputter <NUM>, and the operation inputter <NUM> are connected by a wired interface such as a universal serial bus (USB) cable or the like, or by a wireless interface such as Bluetooth (registered trademark) or the like. Additionally, a configuration is possible in which the controller <NUM>, and the storage <NUM> and the communicator <NUM> are connected via the bus line BL.

The action control device <NUM> controls, by the controller <NUM> and the storage <NUM>, actions of the robot <NUM>. Note that the robot <NUM> is a device that is controlled by the action control device <NUM> and, as such, is also called a "control target device.

In one example, the controller <NUM> is configured from a central processing unit (CPU) or the like, and executes various processings described later using programs stored in the storage <NUM>. Note that the controller <NUM> is compatible with multithreading functionality, in which a plurality of processings are executed in parallel. As such, the controller <NUM> can execute the various processings described below in parallel. Additionally, the controller <NUM> is provided with a clock function and a timer function, and can measure the date and time, and the like.

The storage <NUM> is configured from read-only memory (ROM), flash memory, random access memory (RAM), or the like. Programs to be executed by the CPU of the controller <NUM>, and data needed in advance to execute these programs are stored in the ROM. The flash memory is writable non-volatile memory, and stores data that is desired to be retained even after the power is turned OFF. Data that is created or modified during the execution of the programs is stored in the RAM. In one example, the storage <NUM> stores a voice history, emotion data <NUM>, emotion change data <NUM>, a growth table <NUM>, an action mode setting table <NUM>, a sound buffer <NUM>, and the like, all described hereinafter.

The communicator <NUM> includes a communication module compatible with a wireless local area network (LAN), Bluetooth (registered trademark), or the like, and carries out data communication with a smartphone or similar external device.

The sensor <NUM> includes the touch sensor <NUM>, the acceleration sensor <NUM>, the gyrosensor <NUM>, and the microphone <NUM> described above. The controller <NUM> acquires, as external stimulus data, detection values detected by the various sensors of the sensor <NUM>. The external stimulus data expresses an external stimulus acting on the robot <NUM>. Note that a configuration is possible in which the sensor <NUM> includes sensors other than the touch sensor <NUM>, the acceleration sensor <NUM>, the gyrosensor <NUM>, and the microphone <NUM>. The types of external stimuli acquirable by the controller <NUM> can be increased by increasing the types of sensors of the sensor <NUM>.

The touch sensor <NUM> detects contacting by some sort of object. The touch sensor <NUM> is configured from a pressure sensor or a capacitance sensor, for example. The controller <NUM> acquires a contact strength and/or a contact time on the basis of the detection values from the touch sensor <NUM> and, on the basis of these values, can detect an external stimulus such as that the robot <NUM> is being pet or being struck by the user, and the like (for example, see Unexamined <CIT>). Note that a configuration is possible in which the controller <NUM> detects these external stimuli by a sensor other than the touch sensor <NUM> (for example, see <CIT>).

The acceleration sensor <NUM> detects acceleration in three axial directions, namely the front-back direction (X-axis direction), the width (left-right) direction (Y-axis direction), and the vertical direction (Z direction) of the torso <NUM> of the robot <NUM>. The acceleration sensor <NUM> detects gravitational acceleration when the robot <NUM> is stopped and, as such, the controller <NUM> can detect a current attitude of the robot <NUM> on the basis of the gravitational acceleration detected by the acceleration sensor <NUM>. Additionally, when, for example, the user picks up or throws the robot <NUM>, the acceleration sensor <NUM> detects, in addition to the gravitational acceleration, acceleration caused by the movement of the robot <NUM>. Accordingly, the controller <NUM> can detect the movement of the robot <NUM> by removing the gravitational acceleration component from the detection value detected by the acceleration sensor <NUM>.

The gyrosensor <NUM> detects angular velocity of the three axes of the robot <NUM>. The controller <NUM> can determine a rotation state of the robot <NUM> on the basis of the angular velocities of the three axes. Additionally, the controller <NUM> can determine a vibration state of the robot <NUM> on the basis of the maximum values of the angular velocities of the three axes.

The microphone <NUM> detects ambient sound of the robot <NUM>. The controller <NUM> can, for example, detect, on the basis of a component of the sound detected by the microphone <NUM>, that the user is speaking to the robot <NUM>, that the user is clapping their hands, and the like.

Specifically, the controller <NUM> samples, at a prescribed sampling frequency (<NUM>,<NUM> in the present embodiment) and number of quantization bits (<NUM> bits in the present embodiment), sound data acquired from the microphone <NUM>, and stores the sampled sound data in the sound buffer <NUM> of the storage <NUM>. In the present embodiment, the sound buffer <NUM> includes <NUM> consecutive buffers (storage regions) that each contain <NUM> samples of sampling data. Specifically, as illustrated in <FIG>, voice similarity is determined with the <NUM> consecutive buffers (storage regions) <NUM> to <NUM> as one unit. In the present embodiment, the <NUM> consecutive buffers are expressed as array variables. For example, buffer <NUM> is expressed as buf[<NUM>] and buffer <NUM> is expressed as buf[<NUM>]. <NUM> samples×<NUM> buffers/<NUM> = <NUM> seconds of sound data is stored by the <NUM> buffers.

Note that processing in which the controller <NUM> stores the sound data acquired from the microphone <NUM> in the sound buffer <NUM> is executed in parallel with other processings as a sound buffer storage thread. Additionally, in the present embodiment, in voice characteristic parameter calculation processing, described later, the controller <NUM> performs, for the <NUM> buffers <NUM> to <NUM>, processing for calculating three pieces of Cepstrum information from the <NUM> samples of sampling data in one buffer. The controller <NUM> treats the <NUM> (= <NUM>×<NUM>) pieces of data obtained thereby as a <NUM>-dimension voice characteristic parameter.

A history storage number (for example, <NUM>) of this voice characteristic parameter is stored in the storage <NUM> on a first-in first-out (FIFO) basis. In the present embodiment, the FIFO storing the voice characteristic parameter is called (VFIFO), and the number of voice characteristic parameters stored in the VFIFO is stored in a variable called "VFIFO_SIZE. " A history of the voice characteristic parameter is stored in the VFIFO and, as such, the VFIFO is also called "voice history.

Returning to <FIG>, the driver <NUM> includes the twist motor <NUM> and the vertical motor <NUM>, and is driven by the controller <NUM>. The controller <NUM> controls the driver <NUM> and, as a result, the robot <NUM> can express actions such as, for example, lifting the head <NUM> up (rotating upward around the second rotational axis), twisting the head <NUM> sideways (twisting/rotating to the right or to the left around the first rotational axis), and the like. Action control data for performing these actions are stored in the storage <NUM>, and the actions of the robot <NUM> are controlled on the basis of the detected external stimulus, a growth value described later, and the like.

The sound outputter <NUM> includes the speaker <NUM>, and sound is output from the speaker <NUM> as a result of sound data being input into the sound outputter <NUM> by the controller <NUM>. For example, the robot <NUM> emits a pseudo-animal sound as a result of the controller <NUM> inputting animal sound data of the robot <NUM> into the sound outputter <NUM>. This animal sound data is also stored in the storage <NUM>, and an animal sound is selected on the basis of the detected external stimulus, a growth value described later, and the like.

In one example, the operation inputter <NUM> is configured from an operation button, a volume knob, or the like. The operation inputter <NUM> is an interface for receiving operations performed by the user (owner or borrower) such as, for example, turning the power ON/OFF, adjusting the volume of the output sound, and the like. Note that a configuration is possible in which, in order to further enhance a sense of lifelikeness, the robot <NUM> includes only a power switch as the operation inputter <NUM> on the inside of the exterior <NUM>, and does not include other operation buttons, the volume knob, and the like. In such a case as well, operations such as adjusting the volume of the robot <NUM> can be performed using an external smartphone or the like connected via the communicator <NUM>.

The functional configuration of the robot <NUM> is described above. Next, action modes of the robot <NUM> set by the controller <NUM> of the action control device <NUM> are described. In the present embodiment, the robot <NUM> has, as the action modes, two action modes, namely a normal action mode and a familiar action mode. Typically, the robot <NUM> operates in the normal action mode but, when a person that has high intimacy with the robot <NUM> (a person intimate with the robot <NUM>, for example, the owner, a person who always cares for the robot <NUM>, or the like) speaks to the robot <NUM>, the robot <NUM> transitions from the normal action mode to the familiar action mode and operates in the familiar action mode for a certain amount of time. Note that the familiar action mode is an action mode that is transitioned to when the person intimate with the robot <NUM> is near and, as such, is also called an "intimate action mode.

The normal action mode is an action mode in which an action prepared in advance is performed on the basis of an externally-received stimulus (sound, touch, or the like), an emotion at that time, or the like, regardless of the intimacy between the robot <NUM> and the user near the robot <NUM>. For example, in the normal action mode, the robot <NUM> performs a surprised action when the robot <NUM> hears a loud sound, and performs a happy action when petted.

The familiar action mode is an action mode that is transitioned to from the normal action mode when a determination is made, on the basis of a likelihood (certainty) between the robot <NUM> and the user near the robot, that the user near the robot <NUM> is a person with high intimacy to the robot <NUM>. The familiar action mode is set for only a certain amount of time. In the familiar action mode, the robot <NUM> performs an action of playing (playing around) with the user near the robot <NUM> in accordance with the intimacy.

Specifically, for an action mode setting based on voice, a recognition level is determined in accordance with the action mode setting table <NUM> illustrated in <FIG> and on the basis of the similarity between the voice characteristic parameter of the acquired voice and the voice history, and one action mode, namely the normal action mode or the familiar action mode (three minutes, four minutes, five minutes), is set. Specifically, when the similarity between the voice characteristic parameter of the acquired voice and the voice history is low (lower than a predetermined threshold), the controller <NUM> determines, in accordance with the action mode setting table <NUM>, that the intimacy between the robot <NUM> and the person speaking to the robot <NUM> is low (that is, that the person is not a "person that always cares for the robot <NUM>"). and sets the action mode to the normal action mode.

When the similarity between the voice characteristic parameter of the acquired voice and the voice history is high (higher than the predetermined threshold), the controller <NUM> determines, in accordance with the action mode setting table <NUM>, that the intimacy between the robot <NUM> and the person speaking to the robot <NUM> is high (that is, that the person is "a person that always cares for the robot <NUM>"). Moreover, the controller <NUM> recognizes, on the basis of the likelihood (the certainty of "definitely" or "probably" or "maybe") corresponding to the level of the similarity, that person as a "person that always cares for the robot <NUM>", and sets the action mode to the familiar action mode for a familiar amount of time corresponding to the likelihood. For example, when the similarity is very high, a first familiar amount of time (for example, five minutes) is set as the familiar amount of time, when the similarity is high, a second familiar amount of time (for example, four minutes) is set as the familiar amount of time, and when the similarity is medium, a third familiar amount of time (for example, three minutes) is set as the familiar amount of time.

In the present embodiment, the setting of the action mode is performed on the basis of voice similarity, but the setting of the action mode is not limited to being performed on the basis of voice similarity. For example, a configuration is possible in which the action mode is set to the familiar action mode when the manner of petting is similar to the past history. Additionally, a configuration is possible in which both the voice and the manner of petting are used to define each of a familiar action mode for when the similarity of both are high, a familiar action mode for when only the similarity of the voice history is high, and a familiar action mode for when the similarity of a touch history is high (for example, see <CIT> for a method for determining whether the method of petting is similar to the past history).

Additionally, a configuration is possible in which, instead of absolutely setting the robot <NUM> to the familiar action mode when the similarity to the history is high, the controller <NUM> sets the robot <NUM> to the familiar action mode on the basis of a certain probability (for example, a probability corresponding to an amount of growth (growth value, described later) of the robot <NUM>). Moreover, a configuration is possible in which, when the robot <NUM> is not set to the familiar action mode regardless of the similarity to the history being high, a familiar action (action when it is recognized that the person near the robot <NUM> is the owner or a person that always cares for the robot <NUM>) described in, for example, <CIT>, is set on the basis of the certain probability.

Next, of the data stored in the storage <NUM>, the emotion data <NUM>, the emotion change data <NUM>, the growth table <NUM>, the action content table <NUM>, and the growth days count data <NUM>, which are pieces of data required to determine general actions determined on the basis of the growth value and the like, are described in order. The herein described general actions are performed in the normal action mode of the present embodiment.

The emotion data <NUM> is data for imparting pseudo-emotions to the robot <NUM>, and is data (X, Y) that represents coordinates on an emotion map <NUM>. As illustrated in <FIG>, the emotion map <NUM> is expressed by a two-dimensional coordinate system with a degree of relaxation (degree of worry) axis as an X axis <NUM>, and a degree of excitement (degree of disinterest) axis as a Y axis <NUM>. An origin <NUM> (<NUM>, <NUM>) on the emotion map <NUM> represents an emotion when normal. Moreover, as the value of the X coordinate (X value) is positive and the absolute value thereof increases, emotions for which the degree of relaxation is high are expressed and, as the value of the Y coordinate (Y value) is positive and the absolute value thereof increases, emotions for which the degree of excitement is high are expressed. Additionally, as the X value is negative and the absolute value thereof increases, emotions for which the degree of worry is high are expressed and, as the Y value is negative and the absolute value thereof increases, emotions for which the degree of disinterest is high are expressed. Note that, in <FIG>, the emotion map <NUM> is expressed as a two-dimensional coordinate system, but the number of dimensions of the emotion map <NUM> may be set as desired.

In the present embodiment, regarding the size of the emotion map <NUM> as the initial value, as illustrated by frame <NUM> of <FIG>, a maximum value of both the X value and the Y value is <NUM> and a minimum value is -<NUM>. Moreover, during a first period, each time the pseudo growth days count of the robot <NUM> increases one day, the maximum value and the minimum value of the emotion map <NUM> both increase by two. Here, the first period is a period in which the robot <NUM> grows in a pseudo manner, and is, for example, a period of <NUM> days from a pseudo birth of the robot <NUM>. Note that the pseudo birth of the robot <NUM> is the time of the first start up by the user of the robot <NUM> after shipping from the factory. When the growth days count is <NUM> days, as illustrated by frame <NUM> of <FIG>, the maximum value of the X value and the Y value is <NUM> and the minimum value is -<NUM>. Moreover, when the first period (in this example, <NUM> days) elapses, the pseudo growth of the robot <NUM> ends and, as illustrated in frame <NUM> of <FIG>, the maximum value of the X value and the Y value is <NUM>, the minimum value is -<NUM>, and the size of the emotion map <NUM> is fixed.

The emotion change data <NUM> is data that sets an amount of change that each of an X value and a Y value of the emotion data <NUM> is increased or decreased. In the present embodiment, as emotion change data <NUM> corresponding to the X of the emotion data <NUM>, DXP that increases the X value and DXM that decreases the X value are provided and, as emotion change data <NUM> corresponding to the Y value of the emotion data <NUM>, DYP that increases the Y value and DYM that decreases the Y value are provided. Specifically, the emotion change data <NUM> includes the following four variables, and is data expressing degrees to which the pseudo emotions of the robot <NUM> are changed.

In the present embodiment, an example is described in which the initial value of each of these variables is set to <NUM>, and the value increases to a maximum of <NUM> by processing for learning emotion change data <NUM> in action control processing, described later. Due to this learning processing, the emotion change data <NUM>, that is, the degree of change of emotion changes and, as such, the robot <NUM> assumes various personalities in accordance with the manner in which the user interacts with the robot <NUM>. That is, the personality of each individual robot <NUM> is formed differently on the basis of the manner in which the user interacts with the robot <NUM>.

In the present embodiment, each piece of personality data (personality value) is derived by subtracting <NUM> from each piece of emotion change data <NUM>. Specifically, a value obtained by subtracting <NUM> from DXP that expresses a tendency to be relaxed is set as a personality value (chipper), a value obtained by subtracting <NUM> from DXM that expresses a tendency to be worried is set as a personality value (shy), a value obtained by subtracting <NUM> from DYP that expresses a tendency to be excited is set as a personality value (active), and a value obtained by subtracting <NUM> from DYM that expresses a tendency to be disinterested is set as a personality value (spoiled).

The initial value of each personality value is <NUM> and, as the robot <NUM> grows, each personality value changes, with an upper limit of <NUM>, due to external stimuli and the like (manner in which the user interacts with the robot <NUM>) detected by the sensor <NUM>. In a case in which, as in the present embodiment, four personality values change from <NUM> to <NUM>, it is possible to express <NUM>,<NUM> types of personalities (<NUM> to the <NUM>th power).

In the present embodiment, the greatest value among these four personality values is used as growth level data (the growth value) that expresses a pseudo growth level of the robot <NUM>. Moreover, the controller <NUM> controls so that variation is introduced into the action content of the robot <NUM> in accordance with the pseudo growth of the robot <NUM> (as the growth value increases). As such, the data used by the controller <NUM> is the growth table <NUM>.

As illustrated in <FIG>, types of actions to be performed by the robot <NUM> in response to an action trigger such as the external stimulus detected by the sensor <NUM> or the like, and a probability of each action being selected in accordance with the growth value (hereinafter referred to as "action selection probability") are stored in the growth table <NUM>. Note that the action trigger is information about the external stimulus or the like that triggers the performance of some sort of action by the robot <NUM>.

For example, a case is assumed in which, as a current personality value of the robot <NUM>, the personality value (chipper) is <NUM>, the personality value (active) is <NUM>, the personality value (shy) is <NUM>, and the personality value (spoiled) is <NUM>, and a loud sound is detected by the microphone <NUM>. In this case, the growth value is <NUM>, which is the maximum value of the four personality values, and the action trigger is "heard a loud sound. " Moreover, in the growth table <NUM> illustrated in <FIG>, when referencing the entry for when the action trigger is "heard a loud sound" and the growth value is <NUM>, it is clear that the action selection probability of "basic action <NUM>-<NUM>" is <NUM>%, the action selection probability of "basic action <NUM>-<NUM>" is <NUM>%, the action selection probability of "basic action <NUM>-<NUM>" is <NUM>%, and the action selection probability of "personality action <NUM>-<NUM>" is <NUM>%.

That is, in this case, the "basic action <NUM>-<NUM>" is selected at a probability of <NUM>%, the "basic action <NUM>-<NUM>" is selected at a probability of <NUM>%, the "basic action <NUM>-<NUM>" is selected at a probability of <NUM>%, and the "personality action <NUM>-<NUM>" is selected at a probability of <NUM>%. Moreover, when the "personality action <NUM>-<NUM>" is selected, selection according to the four personality values of one of four types of personality actions such as those illustrated in <FIG> is further performed. Then, the robot <NUM> executes the selected action.

Note that, in the growth table <NUM> (<FIG>) of the present embodiment, one personality action is selected for each action trigger but, as with the basic actions, a configuration is possible in which the types of selected personality actions are increased in accordance with an increase in the personality values. Additionally, in the present embodiment, only the growth table <NUM> (<FIG>) for defining actions when in the normal action mode is defined, but a configuration is possible in which a growth table for defining actions when in the familiar action mode is separately defined. Moreover, a configuration is possible in which the content of <FIG> is also incorporated into the content of the growth table <NUM> (<FIG>) and a growth table is set that defines, in the action type, not only actions for when in the normal action mode but also actions for when in the familiar action mode.

Provided that the growth table <NUM> can, for each action trigger, define a function (growth function) that returns, with the growth value as an argument, the action selection probability of each action type, any form may be used for the growth table <NUM>, and the growth table <NUM> need not necessarily be in the form of tabular data such as illustrated in <FIG>.

As illustrated in <FIG>, the action content table <NUM> is a table in which specific action content of the various action types defined in the growth table <NUM> is stored and, for the personality actions, action content is defined for every type of personality. Note that the action content table <NUM> is not essential data. For example, the action content table <NUM> is unnecessary in a case in which the growth table <NUM> is constructed such that specific action content is directly recorded in the action type field of the growth table <NUM>.

The growth days count data <NUM> has an initial value of <NUM>, and <NUM> is added for each passing day. The growth days count data <NUM> represents a pseudo growth days count (number of days from a pseudo birth) of the robot <NUM>. In the present embodiment, a period of the growth days count expressed by the growth days count data <NUM> is called a "second period.

Next, the action control processing executed by the controller <NUM> of the action control device <NUM> is described while referencing the flowchart illustrated in <FIG>. The action control processing is processing in which the controller <NUM> controls the actions (motion, animal sound, or the like) of the robot <NUM> on the basis of detection values from the sensor <NUM> or the like. When the user turns ON the power of the robot <NUM>, execution of a thread of this action control processing is started in parallel with other required processings. As a result of the action control processing, the driver <NUM> and the sound outputter <NUM> are controlled, the motion of the robot <NUM> is expressed, sounds such as animal sounds and the like are output, and the like.

Firstly, the controller <NUM> initialization-processes the various types of data such as the emotion data <NUM>, the emotion change data <NUM>, the growth days count data <NUM>, and the like (step S101). The various variables used in the present embodiment (BigSound_Flag, TalkSound_Flag, Talkdefinitely_Flag, Talkprobably_Flag, Talkmaybe_Flag, Touch_Flag, and the like) are also initialized to OFF or <NUM> in step S101. Additionally, the controller <NUM> sets the action mode to the normal action mode in step S101.

Next, the controller <NUM> executes microphone input processing for acquiring the external stimulus (voice) of the subject (the user) from the microphone <NUM> (step S102). Next, the controller <NUM> executes action mode setting processing for setting the action mode (step S103). Details of the action mode setting processing are described later but, mainly, the action mode setting processing is processing for setting, on the basis of the similarity between the external stimulus acquired in step S102 and the past history, the action mode to the normal action mode or the familiar action mode presented in the action mode setting table <NUM> illustrated in <FIG>.

Next, the controller <NUM> executes touch input processing for acquiring the external stimulus from the touch sensor <NUM> and/or the acceleration sensor <NUM> (step S104). In the touch input processing, when touched or when there is a change in acceleration or angular velocity, the controller <NUM> sets the Touch_Flag to ON, calculates a touch characteristic parameter, and determines, on the basis of the similarity between the calculated touch characteristic parameter and a touch history, which is the history of past touch characteristic parameters, the intimacy with the subject (the user) applying the external stimulus (see <CIT> for details about the touch input processing).

Note that, in the present embodiment, to facilitate comprehension, the microphone input processing and the touch input processing are described as separate processings, but a configuration is possible in which processing for acquiring the external stimulus from the various types of sensors of the sensor <NUM> and determining the intimacy with the subject (the user) applying the external stimulus is executed as a single processing (external input processing). Additionally, in the present embodiment, the action mode setting processing is executed in step S103, but a configuration is possible in which the action mode is set in consideration of an external input other than voice by executing the action mode setting processing after the touch input processing or after the external input processing.

Next, the controller <NUM> determines whether the external stimulus is acquired by the sensor <NUM> (step S105). For example, when a sound-based external stimulus is detected, as a result of the microphone input processing described above, the BigSound_Flag (flag that turns ON when a loud sound is detected) or the TalkSound_Flag (flag that turns ON when the voice of a person is detected) is set to ON and, as such, the controller <NUM> can determine, on the basis of the values of these flag variables, whether the external stimulus is acquired in step S105.

When a determination is made that the external stimulus is acquired (step S105; Yes), the controller <NUM> acquires, in accordance with the external stimulus acquired in the microphone input processing and the touch input processing, the emotion change data <NUM> to be added to or subtracted from the emotion data <NUM> (step S106). When, for example, petting of the head <NUM> is detected as the external stimulus, the robot <NUM> obtains a pseudo sense of relaxation and, as such, the controller <NUM> acquires DXP as the emotion change data <NUM> to be added to the X value of the emotion data <NUM>.

Next, the controller <NUM> sets the emotion data <NUM> in accordance with the emotion change data <NUM> acquired in step S106 (step S107). When, for example, DXP is acquired as the emotion change data <NUM> in step S106, the controller <NUM> adds the DXP of the emotion change data <NUM> to the X value of the emotion data <NUM>. However, in a case in which a value (X value, Y value) of the emotion data <NUM> exceeds the maximum value of the emotion map <NUM> when adding the emotion change data <NUM>, that value of the emotion data <NUM> is set to the maximum value of the emotion map <NUM>. In addition, in a case in which a value of the emotion data <NUM> is less than the minimum value of the emotion map <NUM> when subtracting the emotion change data <NUM>, that value of the emotion data <NUM> is set to the minimum value of the emotion map <NUM>.

In steps S106 and S107, any type of settings are possible for the type of emotion change data <NUM> acquired and the emotion data <NUM> set for each individual external stimulus. Examples are described below.

Next, the controller <NUM> determines whether the current action mode is the normal action mode or the familiar action mode (step S108). When a determination is made that the current action mode is the normal action mode (step S108; Normal action mode), the controller <NUM> executes normal action mode processing, described later (step S112), and executes step S115.

When a determination is made that the current action mode is the familiar action mode (step S108; Familiar action mode), the controller <NUM> executes familiar action mode processing described later (step S109). Then, the controller <NUM> determines whether a familiar action amount of time (predetermined amount of time set from the start of the familiar action mode) set in the action mode setting processing of step S103 has elapsed (step S110). When the familiar action amount of time has not elapsed (step S110; No), the controller <NUM> executes step S115.

When a determination is made that the familiar action amount of time has elapsed (step S110; Yes), the controller <NUM> sets the action mode to the normal action mode (step S111), and executes step S115.

Meanwhile, when a determination is made in step S105 that the external stimulus is not acquired (step S105; No), the controller <NUM> determines whether to perform a spontaneous action such as a breathing action that creates the impression that the robot <NUM> is breathing, or the like, by periodically driving the twist motor <NUM> and the vertical motor <NUM> at a certain rhythm (step S113). Any method may be used as the method for determining whether to perform the spontaneous action and, in the present embodiment, it is assumed that the determination of step S113 is "Yes" and the breathing action is performed every breathing cycle (for example, two seconds).

When a determination is made to perform the spontaneous action (step S113; Yes), the controller <NUM> executes the spontaneous action (for example, the breathing action) (step S114), and executes step S115.

When a determination is made to not perform the spontaneous action (step S113; No), the controller <NUM> uses a built-in clock function to determine whether a date has changed (step S115). When a determination is made that the date has not changed (step S115; No), the controller <NUM> executes step S102.

Meanwhile, when a determination is made that the date has changed (step S115; Yes), the controller <NUM> determines whether it is in a first period (step S116). When the first period is, for example, a period <NUM> days from the pseudo birth (for example, the first startup by the user after purchase) of the robot <NUM>, the controller <NUM> determines that it is in the first period when the growth days count data <NUM> is <NUM> or less. When a determination is made that it is not in the first period (step S116; No), the controller <NUM> executes step S118.

When a determination is made that it is in the first period (step S116; Yes), the controller <NUM> executes learning processing of the emotion change data <NUM>, and expands the emotion map (step S117). The learning processing of the emotion change data <NUM> is, specifically, processing for updating the emotion change data <NUM> by adding <NUM> to the DXP of the emotion change data <NUM> when the X value of the emotion data <NUM> is set to the maximum value of the emotion map <NUM> even once in step S107 of that day, adding <NUM> to the DYP of the emotion change data <NUM> when the Y value of the emotion data <NUM> is set to the maximum value of the emotion map <NUM> even once in step S107 of that day, adding <NUM> to the DXM of the emotion change data <NUM> when the X value of the emotion data <NUM> is set to the minimum value of the emotion map <NUM> even once in step S107 of that day, and adding <NUM> to the DYM of the emotion change data <NUM> when the Y value of the emotion data <NUM> is set to the minimum value of the emotion map <NUM> even once in step S107 of that day.

However, when the various values of the emotion change data <NUM> become exceedingly large, the amount of change of one time of the emotion data <NUM> becomes exceedingly large and, as such, the maximum value of the various values of the emotion change data <NUM> is set to <NUM>, for example, and the various values are limited to that maximum value or less. Here, <NUM> is added to each piece of the emotion change data <NUM>, but the value to be added is not limited to <NUM>. For example, a configuration is possible in which a number of times at which the various values of the emotion data <NUM> are set to the maximum value or the minimum value of the emotion map <NUM> is counted and, when that number of times is great, the numerical value to be added to the emotion change data <NUM> is increased.

Expanding the emotion map <NUM> in step S117 of <FIG> is, specifically, processing in which the controller <NUM> expands both the maximum value and the minimum value of emotion map <NUM> by <NUM>. However, the numerical value "<NUM>" to be expanded is merely an example, and the emotion map <NUM> may be expanded by <NUM> or greater, or be expanded by <NUM>. Additionally, the numerical values that the emotion map <NUM> is expanded by for the maximum value and the minimum value need not be the same.

Then, the controller <NUM> adds <NUM> to the growth days count data <NUM>, initializes both the X value and the Y value of the emotion data <NUM> to <NUM> (step S118), and executes step S102.

Next, the microphone input processing executed in step S102 of the action control processing is described while referencing <FIG> and <FIG>.

Firstly, the controller <NUM> substitutes, for a variable ML, a maximum level of the sampling data of the voice that is acquired by the microphone input processing and stored in the sound buffer <NUM> (step S201). Next, the controller <NUM> determines whether the value of the variable ML is greater than a BigSoundTh (step S202). Note that the BigSoundTh is a value (loud sound threshold), and the robot <NUM> performs a surprised action in response to sounds louder than the BigSoundTh. When a determination is made that the variable ML is greater than the BigSoundTh (step S202; Yes), the controller <NUM> sets a variable BigSound_Flag, indicating that a loud sound has been input, to ON (step S203), ends the microphone input processing, and executes step S103 of the action control processing.

Meanwhile, when a determination is made that the variable ML is not greater than the BigSoundTh (step S202; No), the controller <NUM> determines whether the value of the variable ML is greater than a TalkSoundTh. Note that the TalkSoundTh is a value (talking voice threshold), and the robot <NUM> cannot hear, as a talking voice, sounds that are quieter than or equal to the TalkSoundTh. When a determination is made that the variable ML is not greater than the TalkSoundTh (step S204; No), the controller <NUM> ends the microphone input processing, and executes step S103 of the action control processing.

Meanwhile, when a determination is made that the variable ML is greater than the TalkSoundTh (step S204; Yes), the controller <NUM> determines whether a number of buffers storing the sound data in the sound buffer <NUM> is less than a reference number (here, the <NUM> buffers <NUM> to <NUM>) (step S205). When a determination is made that the number of buffers is less than the reference number (step S205; Yes), the controller <NUM> executes step S205, and continues the storing of the reference number of buffers.

Meanwhile, when a determination is made that the number of buffers storing the sound data has reached the reference number (step S205; No), the controller <NUM> determines whether the sound stored in the reference number of buffers is noise (step S206). As an example of a method for determining whether the sound is noise, when the sound stored in the buffers is a talking voice that is not noise, a sound of a level greater than TalkSoundTh occurs for a certain amount of time (for example, <NUM> seconds or longer). Meanwhile, when the sound stored in the buffers is noise, there is a high possibility that the sound is a single, momentary sound. The controller <NUM> uses such sound characteristics to determine whether the sound stored in each buffer is noise.

Firstly, for a predetermined number of buffers (in the present embodiment, three sound buffers, namely, buffer <NUM>, buffer <NUM>, and buffer <NUM>) from the beginning (the buffer <NUM>) among the reference number of buffers, the controller <NUM> investigates the number of buffers in which, of the sampling data stored in each buffer, sampling data having a maximum value greater than the TalkSoundTh is stored. When a determination is made that there is even one buffer in which sampling data having a maximum value less than or equal to the TalkSoundTh is stored, the sampling data of the reference number of buffers stored this time is determined to be noise. Meanwhile, when a determination is made that the maximum level of the sampling data stored in all of the buffers is greater than the TalkSoundTh, the sampling data is determined to be not noise.

When a determination is made that the sound stored in the reference number of buffers is noise (step S206; Yes), the controller <NUM> disregards the sampling data stored in the current reference number of buffers (that is, determines that there are no sound external stimuli that constitute an action trigger), ends the microphone input processing, and executes step S103 of the action control processing.

Meanwhile, when a determination is made that the sound stored in the reference number of buffers is not noise (step S206; No), the controller <NUM> determines that the sampling data is a talking voice, substitutes ON for the variable TalkSound_Flag that indicates that a talking voice is inputted (step S207), and performs voice characteristic parameter calculation processing (step S208). The voice characteristic parameter calculation processing is processing for calculating the voice characteristic parameter by calculating a Cepstrum from the sampling data stored in the sound buffer <NUM> (for details, see <CIT>).

Next, the controller <NUM> performs similarity with voice history determination processing (step S209). The similarity with voice history determination processing is processing for calculating a similarity by comparing the voice characteristic parameter calculated by the voice characteristic parameter calculation processing and the voice history, and outputting from return = <NUM> to return = <NUM> in accordance with the similarity (<NUM> = not similar, <NUM> = medium similarity, <NUM> = high similarity, and <NUM> = very high similarity).

Then, the controller <NUM> determines an output result of the similarity with voice history determination processing (step S210). When the determination result of the similarity with voice history determination processing is return = <NUM> (step S210; Yes), the controller <NUM> substitutes ON for a variable Talkdefinitely_Flag indicating that the robot <NUM> recognizes that the voice definitely is a person that always cares for the robot <NUM> (step S211), and executes step S212.

When a determination is made that the determination result of the similarity with voice history determination processing is not return = <NUM> (step S210; No), the controller <NUM> determines whether the determination result of the similarity with voice history determination processing is return = <NUM> (that is, high similarity) (step S213). When a determination is made that the determination result is return = <NUM> (step S213; Yes), the controller <NUM> substitutes ON for a variable Talkprobably_Flag indicating that the robot <NUM> recognizes that the voice probably is a person that always cares for the robot <NUM> (step S214), and executes step S212.

When a determination is made that the determination result of the similarity with voice history determination processing is not return = <NUM> (step S213; No), the controller <NUM> determines whether the determination result of the similarity with voice history determination processing is return = <NUM> (that is, medium similarity) (step S215). When a determination is made that the determination result is return = <NUM> (step S215; Yes), the controller <NUM> substitutes ON for a variable Talkmaybe _Flag indicating that the robot <NUM> recognizes that the voice maybe is a person that always cares for the robot <NUM> (step S216), and executes step S212.

When a determination is made that the determination result of the similarity with voice history determination processing is not return = <NUM> (step S215; No), the controller <NUM> substitutes ON for a variable Talkgeneralaction Flag indicating that a general action is to be performed (step S217), and executes step S212.

Next, in step S212, the controller <NUM> stores, in the voice history (VFIFO), the voice characteristic parameter calculated in step S208 (step S212). Then, the controller <NUM> ends the microphone input processing, and executes step S103 of the action control processing.

Next, the similarity with voice history determination processing executed in step S218 of the microphone input processing is described while referencing <FIG>.

Firstly, the controller <NUM> determines whether a stored number of the voice history stored in the variable VFIFO_Size (buffer) is greater than a minimum voice reference number (in the present embodiment, <NUM>) (step S251). When a determination is made that the stored number is less than or equal to the minimum voice reference number (step S251; No), the controller <NUM> outputs "return = <NUM>" (expressing not similar), ends the similarity with voice history determination processing, and executes step S210 of the microphone input processing.

When a determination is made that the stored number is greater than the minimum voice reference number (step S251; Yes), the controller <NUM> initializes a variable abssimCnt for counting the number of voice histories for which the similarity is very high, a variable simCnt for counting the number of voice histories for which the similarity is high, a variable maysimCnt for counting the number of voice histories for which the similarity is medium, and a variable i for stipulating the various elements (VFIFO[<NUM>] to VFIFO[VFIFO_Size-<NUM>]), as array variables, of the voice history VFIFO to <NUM> (step S252).

Next, the controller <NUM> calculates a distance (L2 norm) between the voice characteristic parameter calculated in step S208 and the VFIFO[i], and substitutes this distance for a variable d[i] (step S253). Next, the controller <NUM> determines whether the value of the variable d[i] is less than a VAbsSimTh (voice extremely highly similar threshold) (step S254). Note that a value less than a VSimTH (voice similar threshold), described later, is set in advance as the VAbsSimTh (voice extremely highly similar threshold). When a determination is made that the variable d[i] is less than the VAbsSimTh (step S254; Yes), the controller <NUM> adds <NUM> to the variable abssimCnt (step S255), and executes step S256. When a determination is made that the variable d[i] is greater than or equal to the VAbsSimTh (step S254; No), the controller <NUM> executes step S256.

Next, the controller <NUM> determines whether the value of the variable d[i] is less than the VSimTh (set in advance as the voice similar threshold) (step S256). When a determination is made that the variable d[i] is less than the VSimTh (step S256; Yes), the controller <NUM> adds <NUM> to the variable simCnt (step S257), and executes step S258. When a determination is made that the variable d[i] is greater than or equal to the VSimTh (step S256; No), the controller <NUM> executes step S258.

Next, in step S258, the controller <NUM> determines whether the value of the variable d[i] is less than a VMaySimTh (voice medium similar threshold). Note that a value greater than the VSimTH (voice similar threshold) is set in advance as the VMaySimTh (voice medium similar threshold). When a determination is made that the variable d[i] is less than the VMaySimTh (step S258; Yes), the controller <NUM> adds <NUM> to the variable maysimCnt (step S259), and executes step S260. When a determination is made that the variable d[i] is greater than or equal to the VMaySimTh (step S258; No), the controller <NUM> executes step S260.

In step S260, the controller <NUM> adds <NUM> to the variable i. Next, the controller <NUM> determines whether the value of the variable i is less than the variable VFIFO_Size (step S261). When a determination is made that the variable i is less than the variable VFIFO_Size (step S261; Yes), the controller <NUM> executes step S253.

When a determination is made that the variable i is greater than or equal to the variable VFIFO_Size (step S261; No), the controller <NUM> determines whether a ratio of the variable abssimCnt to the variable VFIFO_Size exceeds <NUM>% (step S262). When a determination is made that the ratio of the variable abssimCnt to the variable VFIFO_Size exceeds <NUM>% (step S262; Yes), the similarity between the voice characteristic parameter calculated in step S208 and the voice history is very high and, as such, the controller <NUM> outputs "return = <NUM>", ends the similarity with voice history determination processing, and executes step S210 of the microphone input processing.

Meanwhile, when a determination is made that the ratio of the variable abssimCnt to the variable VFIFO_Size is less than or equal to <NUM>% (step S262; No), the controller <NUM> determines whether a ratio of the variable simCnt to the variable VFIFO_Size exceeds <NUM>% (step S263). When a determination is made that the ratio of the variable simCnt to the variable VFIFO_Size exceeds <NUM>% (step S263; Yes), the similarity between the voice characteristic parameter calculated in step S208 and the voice history is high and, as such, the controller <NUM> outputs "return = <NUM>", ends the similarity with voice history determination processing, and executes step S210 of the microphone input processing.

When a determination is made that the ratio of the variable simCnt to the variable VFIFO_Size is less than or equal to <NUM>% (step S263; No), the controller <NUM> determines whether a ratio of the variable maysimCnt to the variable VFIFO_Size exceeds <NUM>% (step S264). When a determination is made that the ratio of the variable maysimCnt to the variable VFIFO_ Size exceeds <NUM>% (step S264; Yes), the similarity between the voice characteristic parameter calculated in step S208 and the voice history is medium and, as such, the controller <NUM> outputs "return = <NUM>", ends the similarity with voice history determination processing, and executes step S210 of the microphone input processing.

Meanwhile, when a determination is made that the ratio of the variable maysimCnt to the variable VFIFO_Size is less than or equal to <NUM>% (step S264; No), the voice characteristic parameter calculated in step S208 and the voice history are not similar and, as such, the controller <NUM> outputs "return = <NUM>", ends the similarity with voice history determination processing, and executes step S210 of the microphone input processing. Note that comparing against "<NUM>%" and "<NUM>%" in the determinations described above are merely examples, and can be changed as needed together with the VabsSimTh, the VSimTh, and the VMaySimTh.

Next, the action mode setting processing that is executed in step S103 of the action control processing (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> determines whether the subject (the user or the like) applying the external stimulus definitely is a person that always cares for the robot <NUM> (that is, whether the Talkdefinitely_Flag is ON) (step S131). When a determination is made that the subject definitely is a person that always cares for the robot <NUM> (step S131; Yes), the controller <NUM> sets the action mode to the familiar action mode, sets the familiar action amount of time to a first familiar action amount of time (for example, five minutes) (step S132), ends the action mode setting processing, and executes step S104 of the action control processing.

When a determination is made that the subject (the user or the like) applying the external stimulus is not definitely a person that always cares for the robot <NUM> (that is, when the Talkdefinitely_Flag is not ON) (step S131; No), the controller <NUM> determines whether the subject (the user or the like) applying the external stimulus probably is a person that always cares for the robot <NUM> (that is, whether the Talkprobably_Flag is ON) (step S133). When a determination is made that the subject probably is a person that always cares for the robot <NUM> (step S133; Yes), the controller <NUM> sets the action mode to the familiar action mode, sets the familiar action amount of time to a second familiar action amount of time (for example, four minutes) (step S134), ends the action mode setting processing, and executes step S104 of the action control processing.

When a determination is made that the subject (the user or the like) applying the external stimulus is not probably a person that always cares for the robot <NUM> (that is, when the Talkprobably_Flag is not ON) (step S133; No), the controller <NUM> determines whether the subject (the user or the like) applying the external stimulus "maybe is a person that always cares for the robot <NUM>" (that is, whether the Talkmaybe_Flag is ON) (step S135). When a determination is made that the subject "maybe is a person that always cares for the robot <NUM> (step S135; Yes), the controller <NUM> sets the action mode to the familiar action mode, sets the familiar action amount of time to a third familiar action amount of time (for example, three minutes) (step S136), ends the action mode setting processing, and executes step S104 of the action control processing.

When a determination is made that the subject (the user or the like) applying the external stimulus is not "maybe a person that always cares for the robot <NUM>" (that is, when the Talkmaybe_Flag is not ON) (step S135; No), the controller <NUM> sets the action mode to the normal action mode (step S137), ends the action mode setting processing, and executes step S104 of the action control processing.

As a result of the action mode setting processing described above, the controller <NUM> sets the action mode on the basis of the likelihood obtained from the level of similarity between the subject (the user or the like) applying the external stimulus to the robot <NUM> and the past voice history. In cases in which the action mode is set to the familiar action mode, the action mode is returned to the normal action mode when the predetermined familiar action amount of time elapses from the start of the familiar action mode. When setting the familiar action mode again during the period in which the familiar action mode is set, the familiar action amount of time is re-set (updated) on the basis of a degree of confidence in the intimacy. Accordingly, a user that always cares for the robot <NUM> can extend the amount of time that the action mode is set to the familiar action mode by occasionally speaking to the robot <NUM> when in the familiar action mode.

Next, the normal action mode processing that is executed in step S112 of the action control processing (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> determines whether there is an external stimulus such as a touch or the like in the touch input processing (step S151). Specifically, it is sufficient that the controller <NUM> determines whether the Touch_Flag is ON. When there is a touch or the like (step S151; Yes), the controller <NUM> performs a touch general action (step S152). The touch general action is a general action performed when the user pets the body of the robot <NUM>, holds the robot <NUM>, or the like, and specifically is an action set in the action type field of the growth table <NUM>, with the body is petted or held as the action trigger (in <FIG>, the basic action <NUM>-<NUM> and the like). Next, the controller <NUM> substitutes OFF for the variable Touch Flag (step S153), ends the normal action mode processing, and executes step S115 of the action control processing (<FIG>).

Meanwhile, when there is not an external stimulus such as a touch or the like in the touch input processing (step S151; No), the controller <NUM> determines whether there is a sound as the external stimulus in the microphone input processing (step S154). Specifically, it is sufficient that the controller <NUM> determines whether the TalkSound_Flag is ON. If there is a sound (step S154; Yes), the controller <NUM> performs a "Talk general action" (step S155). The "Talk general action" is a general action performed when the user speaks to the robot <NUM>, and specifically is an action set in the action type field of the growth table <NUM>, with the robot <NUM> is spoken to as the action trigger (in <FIG>, the basic action <NUM>-<NUM> and the like). Next, the controller <NUM> substitutes OFF for the variable TalkSound _Flag (step S156), ends the normal action mode processing, and executes step S115 of the action control processing (<FIG>).

Meanwhile, when there is not a sound as the external stimulus in the microphone input processing (step S154; No), the controller <NUM> determines whether there is a loud sound as the external stimulus in the microphone input processing (step S157). Specifically, it is sufficient that the controller <NUM> determines whether the BigSound_Flag is ON. When there is a loud sound (step S157; Yes), the controller <NUM> executes an action of reacting to the loud sound (step S158). That is, the controller <NUM> executes an action (the basic action <NUM>-<NUM> or the like) corresponding to "heard a loud sound" as the action trigger of the growth table <NUM> illustrated in <FIG>. Then, the controller <NUM> substitutes OFF for the variable BigSound_Flag (step S159), ends the normal action mode processing, and executes step S115 of the action control processing (<FIG>).

Meanwhile, when there is not a loud sound as the external stimulus (step S157; No), the controller <NUM> executes an action corresponding to another external stimulus (when an action trigger corresponding to the external stimulus acquired in the microphone input processing and/or the touch input processing exists in the growth table <NUM>, an action corresponding to that action trigger) (step S160), ends the normal action mode processing, and executes step S115 of the action control processing (<FIG>).

Next, the familiar action mode processing that is executed in step S109 of the action control processing (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> determines whether there is an external stimulus such as a touch or the like in the touch input processing (step S171). Specifically, it is sufficient that the controller <NUM> determines whether the Touch_Flag is ON. When there is a touch or the like (step S171; Yes), the controller <NUM> executes touch response familiar action processing (step S172). The touch response familiar action processing is described later. Next, the controller <NUM> substitutes OFF for the variable Touch_Flag (step S173), ends the familiar action mode processing, and executes step S110 of the action control processing (<FIG>).

Meanwhile, when there is not an external stimulus such as a touch or the like in the touch input processing (step S171; No), the controller <NUM> determines whether there is a sound as the external stimulus in the microphone input processing (step S174). Specifically, it is sufficient that the controller <NUM> determines whether the TalkSound_Flag is ON. When there is a sound (step S174; Yes), the controller <NUM> executes sound response familiar action processing (step S175). The sound response familiar action processing is described later. Next, the controller <NUM> substitutes OFF for the variable TalkSound_Flag (step S176), ends the familiar action mode processing, and executes step S110 of the action control processing (<FIG>).

Meanwhile, when there is not a sound as the external stimulus in the microphone input processing (step S174; No), the controller <NUM> determines whether there is a loud sound as the external stimulus in the microphone input processing (step S177). Specifically, it is sufficient that the controller <NUM> determines whether the BigSound_Flag is ON. When there is a loud sound (step S177; Yes), the controller <NUM> executes loud sound response familiar action processing (step S178). The loud sound response familiar action processing is described later. Then, the controller <NUM> substitutes OFF for the variable BigSound_Flag (step S179), ends the familiar action mode processing, and executes step S110 of the action control processing (<FIG>).

Meanwhile, when there is not a loud sound as the external stimulus (step S177; No), the controller <NUM> executes an action corresponding to another external stimulus (when an action trigger corresponding to the external stimulus acquired in the microphone input processing and/or the touch input processing exists in the growth table <NUM>, an action corresponding to that action trigger) (step S180), ends the familiar action mode processing, and executes step S110 of the action control processing (<FIG>).

Next, the touch response familiar action processing that is executed in step S172 of the familiar action mode processing (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> determines, by the touch sensor <NUM>, whether the head <NUM> is being held down (step S301). This can be determined on the basis of whether the pressure acquired by the touch sensor <NUM> is greater than or equal to a predetermined threshold. When the head <NUM> is not being held down (step S301; No), the controller <NUM> ends the touch response familiar action processing, and executes step S173 of the familiar action mode processing (<FIG>).

When the head <NUM> is being held down (step S301; Yes), the controller <NUM> performs an action of raising the torso <NUM> (step S302). Specifically, the controller <NUM> raises the head <NUM> using the vertical motor <NUM>. Since the user is holding the head <NUM> down, the torso <NUM> is raised by raising the head <NUM> using the vertical motor <NUM>. Note that when the force of the user holding the head <NUM> down is weak, it is thought that the head <NUM> will rise without the torso <NUM> rising. As such, the predetermined threshold when determining in step S301 is set, by step S302, to a value at which the torso <NUM> will rise.

Next, the controller <NUM> determines whether the head <NUM> is still being held down (step S303). When the head <NUM> is still being held down (step S303; Yes), the controller <NUM> executes step S302, and repeats the action of raising the torso <NUM>.

When the head <NUM> is not being held down (step S303; No), the controller <NUM> returns the robot <NUM> to the original state (typically, a cyclical breathing action) (step S304), ends the touch response familiar action processing, and executes step S173 of the familiar action mode processing (<FIG>).

As a result of this touch response familiar action processing, when the user holds down the head <NUM> of the robot <NUM>, the robot <NUM> raises the torso <NUM> in response thereto and, as such, the user can be given the impression of playing with the robot <NUM>.

Next, the sound response familiar action processing that is executed in step S175 of the familiar action mode processing (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> determines, by the touch sensor <NUM> of the torso <NUM>, whether the torso <NUM> is being touched (step S311). When the torso <NUM> is not being touched (step S311; No), the controller <NUM> ends the sound response familiar action processing, and executes step S176 of the familiar action mode processing (<FIG>).

When the torso <NUM> is being touched (step S311; Yes), the controller <NUM> performs a trembling action (step S312). Specifically, the controller <NUM> causes the robot <NUM> to tremble by moving the head <NUM> left and right at small increments (for details of this processing, see Unexamined <CIT>).

Next, the controller <NUM> determines whether the torso <NUM> is still being touched (step S313). When the torso <NUM> is still being touched (step S313; Yes), the controller <NUM> executes step S312 and repeats the trembling action.

When the torso <NUM> is not being touched (step S313; No), the controller <NUM> performs an action of raising the head <NUM> and looking around (step S314). Specifically, the controller <NUM> uses the vertical motor <NUM> to raise the head <NUM>, and uses the twist motor <NUM> to rotate the head <NUM> to the left and right.

Then, the controller <NUM> returns the robot <NUM> to the original state (typically, a cyclical breathing action) (step S315), ends the sound response familiar action processing, and executes step S176 of the familiar action mode processing (<FIG>).

As a result of this sound response familiar action processing, when the user holds down the torso <NUM> of the robot <NUM>, the robot <NUM> trembles and, as such, the robot <NUM> can give the impression of being frightened due to the body being held down. Moreover, when the hand of the user is removed from the robot <NUM>, the robot <NUM> raises the head <NUM> and looks around as if to say "the danger has passed. " As a result, the user can feel that the robot <NUM> is more adorable.

Next, the loud sound response familiar action processing that is executed in step S178 of the familiar action mode processing (<FIG>) is described while referencing <FIG>.

Firstly, the controller <NUM> generates a random number, namely an integer from <NUM> to <NUM> (step S321). Next, the controller <NUM> determines whether the generated random number is <NUM> (step S322). When the generated random number is <NUM> (step S322; Yes), the controller <NUM> performs an action of tilting the robot <NUM> to the left (step S323). Specifically, the controller <NUM> uses the vertical motor <NUM> to lower the head <NUM>, and uses the twist motor <NUM> to rotate the head <NUM> to the right. As a result, the body of the robot <NUM> tilts diagonally to the left. Then, the controller <NUM> ends the loud sound response familiar action processing, and executes step S179 of the familiar action mode processing (<FIG>).

When the generated random number is not <NUM> (step S322; No), the controller <NUM> determines whether the generated random number is <NUM> (step S324). When the generated random number is <NUM> (step S324; Yes), the controller <NUM> performs an action of tilting the robot <NUM> to the right (step S325). Specifically, the controller <NUM> uses the vertical motor <NUM> to lower the head <NUM>, and uses the twist motor <NUM> to rotate the head <NUM> to the left. As a result, the body of the robot <NUM> tilts diagonally to the right. Then, the controller <NUM> ends the loud sound response familiar action processing, and executes step S179 of the familiar action mode processing (<FIG>).

When the generated random number is not <NUM> (step S324; No), the controller <NUM> determines whether the generated random number is <NUM> (step S326). When the generated random number is <NUM> (step S326; Yes), the controller <NUM> causes the robot <NUM> to perform a swing action (step S325). Specifically, the controller <NUM> repeatedly performs the action of tilting to the left and the action of tilting to the right to give the impression that that the robot <NUM> is swinging. Then, the controller <NUM> ends the loud sound response familiar action processing, and executes step S179 of the familiar action mode processing (<FIG>).

Note that a configuration is possible in which, in step S321 described above, the controller <NUM> generates numbers in a regular order of, for example, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and so on, instead of generating a random number.

As a result of this loud sound response familiar action processing, when the user makes a loud sound, the body of the robot <NUM> moves so as to tilt and swing and, as such, the user can be given the impression of playing with the robot <NUM> by making sounds.

Note that the various actions described above of the familiar action mode are merely examples, and the action content may be changed on the basis of the emotion data <NUM> at each point in time and/or the emotion change data <NUM>.

Additionally, in the action mode setting processing (<FIG>) described above, the controller <NUM> sets the action mode to the familiar action mode only when a determination is made that the intimacy with the user applying the external stimulus is high. However, the present disclosure need not be limited to this setting method. For example, a configuration is possible in which, when a determination is made that the robot <NUM> is spoken to, the controller <NUM> sets the action mode to the familiar action mode in accordance with a number of days from the pseudo-birth of the robot <NUM> (for example, the birthday of the robot <NUM>), regardless of the similarity with the history. Additionally, a configuration is possible in which the controller <NUM> occasionally (for example, about one time per day) sets the action mode to the familiar action mode by a random number or the like, regardless of the similarity with the history. The familiar action amount of time in such cases can also be set as desired, and a configuration is possible in which the controller <NUM> sets the familiar action amount of time to, for example, the comparatively short third familiar action amount of time (for example, three minutes).

As a result of the action control processing described above, the controller <NUM> acquires the external stimulus acting on the robot <NUM> (the control target device); sets, on the basis of the likelihood (owner, person that always cares for the robot <NUM>, person that cares little for the robot <NUM>, and the like) corresponding to the level of intimacy between the robot <NUM> and the subject (the user or the like) applying the external stimulus, the action mode in which the action content that the robot <NUM> performs to the subject is defined; and controls the action of the robot <NUM> on the basis of the external stimulus and the action mode. As such, in accordance with the similarity between a characteristic quantity of the manner of speaking and an external stimulus characteristic quantity stored in the storage <NUM> as the history, the robot <NUM> can determine that the person applying the external stimulus is "probably a person that always cares for the robot <NUM>" and perform an action in the familiar action mode, and the controller <NUM> can cause an action to be performed that takes the relationship between the robot <NUM> and the subject into consideration.

The present disclosure is not limited to the embodiment described above, and various modifications and uses are possible. For example, a configuration is possible in which, as when in the normal action mode, the action content when in the familiar action mode changes in accordance with the growth value and/or the personality.

The actions of the robot <NUM> are not limited to the actions by the driver <NUM> and the outputting of sounds from the sound outputter <NUM>. A configuration is possible in which, in cases in which the robot <NUM> includes other controlled components (for example, an LED, a display, or the like), as the action of the robot <NUM>, the controller <NUM> controls a color and/or a brightness of an LED that is turned ON. It is sufficient that the controlled components to controlled by the controller <NUM> include at least one of the driver <NUM> and the sound outputter <NUM>.

The configuration of the emotion map <NUM>, and the setting methods of the emotion data <NUM>. the emotion change data <NUM>, the personality data, the growth value, and the like in the embodiment described above are merely examples. For example, a configuration is possible in which a numerical value (when exceeding <NUM>, always set to <NUM>) obtained by dividing the growth days count data <NUM> by a certain number is set as the growth value.

In the embodiment described above, the action control device <NUM> for controlling the robot <NUM> is built into the robot <NUM>, but the action control device <NUM> for controlling the robot <NUM> need not necessarily be built into the robot <NUM>. For example, a configuration is possible in which the action control device <NUM> is configured as a device separate from the robot <NUM>, and the robot <NUM> includes a controller <NUM> and a communicator <NUM> separate from the controller <NUM> and the communicator <NUM> of the action control device <NUM>. In such a case, the communicator <NUM> and the communicator <NUM> are configured so as to send and receive data to and from each other, and the controller <NUM> acquires the external stimulus detected by the sensor <NUM>, controls the driver <NUM> and the sound outputter <NUM>, and the like via the communicator <NUM> and the communicator <NUM>.

In the embodiments described above, a description is given in which the action programs executed by the CPU of the controller <NUM> are stored in advance in the ROM or the like of the storage <NUM>. However, the present disclosure is not limited thereto, and a configuration is possible in which the action programs for executing the various processings described above are installed on an existing general-purpose computer or the like, thereby causing that computer to function as a device corresponding to the action control device <NUM> according to the embodiments described above.

Any method can be used to provide such programs. For example, the programs may be stored and distributed on a non-transitory computer-readable recording medium (flexible disc, Compact Disc (CD)-ROM, Digital Versatile Disc (DVD)-ROM, Magneto Optical (MO) disc, memory card, USB memory, or the like), or may be provided by storing the programs in a storage on a network such as the internet, and causing these programs to be downloaded.

Additionally, in cases in which the processings described above are realized by being divided between an operating system (OS) and an application/program, or are realized by cooperation between an OS and an application/program, it is possible to store only the portion of the application/program on the non-transitory recording medium or in the storage. Additionally, the programs can be piggybacked on carrier waves and distributed via a network. For example, the programs may be posted to a bulletin board system (BBS) on a network, and distributed via the network. Moreover, a configuration is possible in which the processings described above are executed by starting these programs and, under the control of the operating system (OS), executing the programs in the same manner as other applications/programs.

Additionally, a configuration is possible in which the controller <NUM> is constituted by a desired processor unit such as a single processor, a multiprocessor, a multi-core processor, or the like, or by combining these desired processors with processing circuity such as an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or the like.

Claim 1:
An action control device (<NUM>) that controls an action of a control target device (<NUM>), the action control device (<NUM>) comprising:
a controller (<NUM>) that
acquires an external stimulus applied to the control target device (<NUM>), and calculates a characteristic parameter of the acquired external stimulus, characterized in that
the controller (<NUM>)
stores the calculated characteristic parameter in a storage as a stored parameter without associating with a subject applying the external stimulus,
calculates, for each stored parameter, a similarity between a plurality of the stored parameters previously stored and the calculated characteristic parameter that is a latest characteristic parameter,
counts, as a counter variable for counting, a number of stored parameters, among the plurality of stored parameters, of which corresponding similarities are equal to or greater than a predetermined threshold,
determines, based on the counted counter variable, an intimacy between the subject applying the external stimulus and the control target device (<NUM>), and
sets an action amount of time of an intimate action mode of the control target device (<NUM>) in accordance with the determined intimacy to cause the control target device (<NUM>) to execute different action content based on the determined intimacy.