Emotion expression device, emotion expression method, and program
The robot simulates natural emotional changes by updating emotional parameters based on external stimuli, allowing for a more realistic simulation of living creatures and improved user interaction.
Patent Information
- Application Number
- JP2025000073
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-01-06
- Publication Date
- 2025-03-21
- Estimated Expiration
- 2043-01-25
AI Technical Summary
Existing robots that simulate pet-like creatures struggle to realistically mimic natural changes in emotions, limiting their ability to simulate creatures more realistically.
A robot equipped with emotional parameters represented on a positioning map, updated by external stimuli, and controlled to perform actions based on these updated parameters, using a parameter update mechanism that moves emotional parameters on the map based on evaluation values and correction values.
Enables the robot to simulate natural changes in emotions, allowing for more realistic simulation of living creatures and enhancing user interaction.
Smart Images

Figure 2025039638000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a robot, a control method for a robot, and a program. [Background technology]
[0002] There are known robots that mimic living creatures such as pets. For example, Patent Document 1 discloses a robot device that determines an internal emotion based on a past operation history, a dialogue history, a favorability rating, a degree of intimacy, etc., and behaves according to the internal emotion. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2003-117866 A Summary of the Invention [Problem to be solved by the invention]
[0004] In a robot that can express emotions similar to those of a living creature, there is a demand for it to mimic the natural changes in emotions of a living creature in order to more realistically imitate the living creature.
[0005] The present invention has been made to solve the above-mentioned problems, and has an object to provide a mechanical robot, a robot control method, and a program that can mimic the natural changes in emotions of living creatures. [Means for solving the problem]
[0006] In order to achieve the above object, one aspect of the robot according to the present invention is to A robot that operates according to an emotion parameter indicating a pseudo-emotion, An external stimulus acquisition means for acquiring an external stimulus; a parameter update means for updating the emotion parameter in response to the external stimulus acquired by the external stimulus acquisition means; an action control means for causing the robot to act in accordance with the emotion parameters updated by the parameter update means; Equipped with The emotion parameter is represented by a position on a positioning map having at least two coordinate axes; when updating the emotion parameter, the parameter update means moves a position of the emotion parameter on the positioning map based on an evaluation value corresponding to the external stimulus acquired by the external stimulus acquisition means and a correction value corresponding to a current position of the emotion parameter on the positioning map. It is characterized by: Effect of the Invention
[0007] According to the present invention, it is possible to provide a robot that is a device capable of simulating the natural changes in emotions of living creatures, and a method and program for controlling the robot. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram showing an external appearance of a robot according to an embodiment. [Diagram 2] 1 is a cross-sectional side view of a robot according to an embodiment. [Diagram 3] FIG. 2 is a diagram showing a housing of the robot according to the embodiment. [Figure 4] FIG. 1 is a first diagram showing the movement of a twist motor of a robot according to an embodiment; [Diagram 5] FIG. 11 is a second diagram showing the movement of the twist motor of the robot according to the embodiment. [Figure 6] FIG. 2 is a first diagram showing the movement of an up and down motor of the robot according to the embodiment. [Figure 7] FIG. 11 is a second diagram showing the movement of the up and down motor of the robot according to the embodiment. [Figure 8] 1 is a block diagram showing a functional configuration of a robot according to an embodiment. [Figure 9] FIG. 2 is a diagram illustrating an example of an emotion map according to an embodiment. [Figure 10] FIG. 2 is a first diagram showing an example of movement of emotion parameters on an emotion map according to the embodiment. [Figure 11] FIG. 11 is a second diagram showing an example of movement of emotion parameters on the emotion map according to the embodiment. [Figure 12] FIG. 13 is a diagram illustrating an example of an event management table according to the embodiment. [Figure 13] FIG. 4 is a diagram showing a first example of a distribution of correction values according to the embodiment. [Figure 14] FIG. 11 is a diagram showing a second example of the distribution of correction values according to the embodiment. [Figure 15] FIG. 4 is a diagram illustrating an example of a lookup table according to the embodiment. [Figure 16] FIG. 13 is a third diagram showing an example of movement of emotion parameters on the emotion map according to the embodiment. [Figure 17] FIG. 2 illustrates an example of a history buffer according to an embodiment. [Figure 18] FIG. 4 is a diagram illustrating an example of a fluctuation component according to the embodiment. [Figure 19] 10 is a flowchart showing a flow of a robot control process according to the embodiment. [Figure 20] 10 is a flowchart showing a flow of a movement vector calculation process according to the embodiment. [Figure 21] 10 is a flowchart showing a flow of interrupt processing according to the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals.
[0010] 1 to 3 show the external appearance of a robot 200 according to this embodiment. As shown in Fig. 1, the robot 200 is a pet robot that imitates a small animal. The robot 200 has an exterior 201 that includes decorative parts 202 that imitate eyes and fluffy fur 203.
[0011] 2 and 3, the robot 200 includes a housing 207. The housing 207 is covered by an exterior 201 and is stored inside the exterior 201. The housing 207 includes a head 204, a connecting portion 205, and a body portion 206. The connecting portion 205 connects the head 204 and the body portion 206 together.
[0012] Exterior 201 is an example of an exterior member, and is long in the front-rear direction, and has a bag-like shape capable of housing 207 therein. Exterior 201 is formed in a cylindrical shape from head 204 to body 206, and integrally covers body 206 and head 204. With exterior 201 of such a shape, robot 200 is formed in a crawling shape.
[0013] The outer surface of exterior 201 is made of artificial pile fabric that imitates fur 203 of a small animal in order to simulate the feel of the skin of a small animal. The lining of exterior 201 is made of synthetic fiber, natural fiber, natural leather, artificial leather, a synthetic resin sheet material, a rubber sheet material, or the like. Since exterior 201 is made of such a flexible material, it follows the movement of housing 207. Specifically, exterior 201 follows the rotation of head 204 relative to body 206.
[0014] In order for exterior 201 to follow the movement of housing 207, exterior 201 is attached to housing 207 with snap buttons (not shown). Specifically, at least one snap button is provided in the front of head 204, and at least one snap button is provided in the rear of body 206. Snap buttons that fit with the snap buttons provided on head 204 and body 206 are also provided in corresponding positions on exterior 201, and exterior 201 is fastened to housing 207 by the snap buttons and attached. Note that the number and positions of the snap buttons are merely examples and can be changed as desired.
[0015] The body 206 extends in the front-rear direction, and 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. The body 206 is provided with a twist motor 221 at its front end. 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. Note that, although the twist motor 221 is provided in the body 206 in FIG. 2, it may be provided in the connecting part 205. The twist motor 221 and the up-down motor 222 connect the head 204 to the body 206 so as to be rotatable about axes in the left-right and front-rear directions of the robot 200.
[0016] As the XYZ coordinate axes, the X-axis and Y-axis are set in a horizontal plane, and the Z-axis is set in the vertical direction. The positive direction of the Z-axis corresponds to the vertical upward direction. For ease of explanation, the following description will be given assuming that the robot 200 is placed on the placement surface with the left-right direction (width direction) of the robot 200 being the X-axis direction, and the front-rear direction of the robot 200 being the Y-axis direction.
[0017] The connecting part 205 connects the body part 206 and the head 204 to be rotatable about a first rotation axis that passes through the connecting part 205 and extends in the front-rear direction (Y direction) of the body part 206. The twist motor 221 rotates (forward rotation) the head 204 clockwise (right-handed) around the first rotation axis within a forward rotation angle range, and rotates (reverse rotation) the head 204 counterclockwise (left-handed) within a reverse rotation angle range, relative to the body part 206, as shown in Figs.
[0018] In this description, clockwise refers to the clockwise direction when looking from the body 206 toward the head 204. Clockwise rotation is also called "right-handed twist rotation" and counterclockwise rotation is also called "left-handed twist rotation". The maximum angle of right-handed or left-handed twist rotation is arbitrary. In Figs. 4 and 5, the angle of the head 204 when the head 204 is not twisted to the right or left (hereinafter "twist reference angle") is represented by 0. The angle when the head 204 is twisted to the left most (counterclockwise rotation) is represented by -100, and the angle when the head is twisted to the right most (clockwise rotation) is represented by +100.
[0019] Furthermore, the connecting part 205 connects the body part 206 and the head part 204 to be rotatable about a second rotation axis that passes through the connecting part 205 and extends in the left-right direction (width direction, X direction) of the body part 206. The up-down motor 222 rotates the head part 204 upward within a forward rotation angle range (forward rotation) and rotates the head part 204 downward within a reverse rotation angle range (reverse rotation) about the second rotation axis, as shown in Figs. 6 and 7 .
[0020] The maximum angle of upward or downward rotation is arbitrary, but in Figures 6 and 7, the angle of head 204 when head 204 is not rotated upward or downward (hereinafter referred to as the "vertical reference angle") is represented as 0, the angle when head 204 is rotated most downward is represented as -100, and the angle when head 204 is rotated most upward is represented as +100.
[0021] 2 and 3, the robot 200 is provided with touch sensors 211 on the head 204 and the body 206. The touch sensors 211 enable the robot 200 to detect when the user strokes or hits the head 204 or the body 206.
[0022] The robot 200 includes an acceleration sensor 212, a microphone 213, a gyro sensor 214, an illuminance sensor 215, a speaker 231, and a battery 250 on the torso 206. The robot 200 can detect a change in the posture of the robot 200 itself by the acceleration sensor 212 and the gyro sensor 214, and can also detect that the robot 200 has been lifted up, turned around, or thrown by a user. The robot 200 can detect the illuminance around the robot 200 by the illuminance sensor 215. The robot 200 can detect external sounds by the microphone 213. The robot 200 can emit cries by the speaker 231.
[0023] At least a portion of the acceleration sensor 212, microphone 213, gyro sensor 214, illuminance sensor 215 and speaker 231 may be provided in the head 204, not limited to the torso 206, or in both the torso 206 and the head 204.
[0024] Next, the functional configuration of the robot 200 will be described with reference to Fig. 8. As shown in Fig. 8, the robot 200 includes a control device 100, a sensor unit 210, a drive unit 220, an output unit 230, and an operation unit 240. These units are connected to each other via a bus line BL, for example. Note that instead of the bus line BL, a wired interface such as a USB (Universal Serial Bus) cable or a wireless interface such as Bluetooth (registered trademark) may be used.
[0025] The control device 100 includes a control unit 110 and a storage unit 120. The control device 100 controls the operation of the robot 200 by the control unit 110 and the storage unit 120.
[0026] The control unit 110 includes a CPU (Central Processing Unit). The CPU is, for example, a microprocessor, and is a central processing unit that executes various processes and calculations. In the control unit 110, the CPU reads out a control program stored in a ROM, and controls the operation of the entire device (robot 200) while using a RAM as a work memory. Although not shown, the control unit 110 also includes a clock function, a timer function, and the like, and can measure the date and time. The control unit 110 may also be called a "processor."
[0027] The storage unit 120 includes a ROM (Read Only Memory), a RAM (Random Access Memory), a flash memory, etc. The storage unit 120 stores programs and data, including an OS (Operating System) and application programs, that are used by the control unit 110 to perform various processes. The storage unit 120 also stores data that is generated or acquired by the control unit 110 performing various processes.
[0028] The sensor unit 210 includes the above-mentioned touch sensor 211, acceleration sensor 212, gyro sensor 214, and microphone 213. The control unit 110 acquires, as external stimuli, detection values detected by the various sensors included in the sensor unit 210 via the bus line BL. Note that the sensor unit 210 may include sensors other than the touch sensor 211, acceleration sensor 212, gyro sensor 214, and microphone 213. By increasing the types of sensors included in the sensor unit 210, it is possible to increase the types of external stimuli that the control unit 110 can acquire.
[0029] The touch sensor 211 includes, for example, a pressure sensor or a capacitance sensor, and detects contact with some object. Based on the detection value of the touch sensor 211, the control unit 110 can detect whether the robot 200 is being stroked or hit by the user.
[0030] The acceleration sensor 212 detects acceleration applied to the body 206 of the robot 200. The acceleration sensor 212 detects acceleration in each of the X-axis direction, the Y-axis direction, and the Z-axis direction, that is, acceleration in three axes.
[0031] For example, the acceleration sensor 212 detects gravitational acceleration when the robot 200 is stationary. The control unit 110 can detect the current posture of the robot 200 based on the gravitational acceleration detected by the acceleration sensor 212. In other words, the control unit 110 can detect whether the housing 207 of the robot 200 is tilted from the horizontal direction based on the gravitational acceleration detected by the acceleration sensor 212. In this way, the acceleration sensor 212 functions as a tilt detection means that detects the tilt of the robot 200.
[0032] Furthermore, when the user lifts or throws the robot 200, the acceleration sensor 212 detects the acceleration accompanying the movement of the robot 200 in addition to the gravitational acceleration. Therefore, the control unit 110 can detect the movement of the robot 200 by removing the gravitational acceleration component from the detection value detected by the acceleration sensor 212.
[0033] The gyro sensor 214 detects the angular velocity when rotation is applied to the body 206 of the robot 200. Specifically, the gyro sensor detects the angular velocity of three-axis rotation, namely, rotation about the X-axis direction, rotation about the Y-axis direction, and rotation about the Z-axis direction. By combining the detection values detected by the acceleration sensor 212 and the detection values detected by the gyro sensor 214, the movement of the robot 200 can be detected with higher accuracy.
[0034] The touch sensor 211, the acceleration sensor 212, and the gyro sensor 214 detect the strength of contact, the acceleration, and the angular velocity, respectively, at synchronized timing (for example, every 0.25 seconds), and output the detection values to the control unit 110.
[0035] The microphone 213 detects sounds around the robot 200. Based on the components of the sound detected by the microphone 213, the control unit 110 can detect, for example, whether the user is calling out to the robot 200 or clapping his hands.
[0036] The illuminance sensor 215 detects the illuminance of the surroundings of the robot 200. Based on the illuminance detected by the illuminance sensor 215, the control unit 110 can detect whether the surroundings of the robot 200 have become brighter or darker.
[0037] The driving unit 220 includes a twist motor 221 and an up-down motor 222, and is driven by the control unit 110. The twist motor 221 is a servo motor for rotating the head 204 in the left-right direction (width direction) with respect to the torso unit 206, with the front-rear direction as an axis. The up-down motor 222 is a servo motor for rotating the head 204 in the up-down direction (height direction) with respect to the torso unit 206, with the left-right direction as an axis. The robot 200 can express the motion of twisting the head 204 sideways by the twist motor 221, and can express the motion of raising and lowering the head 204 by the up-down motor 222.
[0038] 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 on the cry of the robot 200 to the output unit 230, the robot 200 emits a pseudo cry.
[0039] Incidentally, 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 emotions such as joy and sadness may be displayed on the display or expressed by the color and brightness of the emitted light.
[0040] The operation unit 240 includes operation buttons, a volume knob, etc. The operation unit 240 is an interface for accepting user operations such as turning the power on and off, adjusting the volume of the output sound, etc.
[0041] The battery 250 stores power used by the robot 200. When the robot 200 returns to the charging station, the battery 250 is charged by the charging station.
[0042] Next, a functional configuration of the control unit 110 will be described. As shown in Fig. 8, the control unit 110 functionally includes an external stimulus acquisition unit 111 which is an example of an external stimulus acquisition means, an operation control unit 112 which is an example of an operation control means, and a parameter update unit 113 which is an example of a parameter update means. In the control unit 110, the CPU reads a program stored in the ROM into the RAM, and executes and controls the program, thereby functioning as each of these units.
[0043] Furthermore, storage unit 120 stores emotion parameters 121 , an emotion expression table 122 , an event management table 123 , a lookup table 124 , a history buffer 125 , and an emotion map 300 .
[0044] The external stimulus acquisition unit 111 acquires an external stimulus. The external stimulus is a stimulus that acts on the robot 200 from outside the robot 200. Examples of the external stimulus include "a loud noise was heard," "someone spoke to," "someone stroked," "someone lifted up," "someone turned upside down," "it became brighter," "it became darker," and the like. The external stimulus is also referred to as an "event" below.
[0045] The external stimulus acquisition unit 111 acquires an external stimulus based on a detection value by the sensor unit 210. More specifically, the external stimulus acquisition unit 111 acquires a plurality of external stimuli of different types from each other by a plurality of sensors (a touch sensor 211, an acceleration sensor 212, a microphone 213, a gyro sensor 214, and an illuminance sensor 215) provided in the sensor unit 210.
[0046] For example, the external stimulus acquisition unit 111 acquires an external stimulus caused by "a loud noise being heard" or "being spoken to" via the microphone 213. The external stimulus acquisition unit 111 acquires an external stimulus caused by "being stroked" via the touch sensor 211. The external stimulus acquisition unit 111 acquires an external stimulus caused by "being lifted" or "being turned upside down" via the acceleration sensor 212 and gyro sensor 214. The external stimulus acquisition unit 111 acquires an external stimulus caused by "it becoming brighter" or "it becoming dark" via the illuminance sensor 215.
[0047] When an external stimulus is acquired by the external stimulus acquisition unit 111, the movement control unit 112 causes the robot 200 to execute a corresponding movement that is a movement corresponding to the acquired external stimulus. For example, when "a loud noise is heard", the movement control unit 112 causes the robot 200 to execute a movement of surprise. When "someone speaks to" the movement control unit 112 causes the robot 200 to execute a movement that responds to the speech. When "the robot is turned upside down", the movement control unit 112 causes the robot 200 to execute a movement that shows an unpleasant reaction. When "the robot is petted", the movement control unit 112 causes the robot 200 to execute a movement of joy.
[0048] Here, the action that the action control unit 112 causes the robot 200 to execute is realized by one or both of the motion by the driving unit 220 and the output by the output unit 230. Specifically, the motion by the driving unit 220 corresponds to rotating the head 204 by driving the twist motor 221 or the up-down motor 222. Moreover, the output by the output unit 230 corresponds to outputting a cry from the speaker 231, displaying an image on a display, or illuminating an LED. The action of the robot 200 may be called the gesture, behavior, etc. of the robot 200.
[0049] Although not shown in the figure, the correspondence between the external stimuli and the corresponding actions is stored in advance as an action table in the storage unit 120. The action control unit 112 refers to the action table and causes the robot 200 to execute a corresponding action corresponding to the external stimulus acquired by the external stimulus acquisition unit 111.
[0050] When no external stimulus is acquired by the external stimulus acquisition unit 111, the motion control unit 112 causes the robot 200 to perform a spontaneous motion. Here, the spontaneous motion means a motion that does not depend on an external stimulus, such as a motion that simulates breathing.
[0051] The parameter update unit 113 updates the emotion parameter 121 in response to the external stimulus acquired by the external stimulus acquisition unit 111. The emotion parameter 121 is a parameter indicating a simulated emotion of the robot 200. The emotion parameter 121 is set to express a degree of expression of the simulated emotion in the robot 200 so that the robot 200 can mimic the movements of a living thing. The robot 200 behaves in response to the emotion parameter 121.
[0052] More specifically, the emotion parameters 121 are represented by positions on a positioning map having at least two coordinate axes. A positioning map is a map that represents positions by coordinate values according to at least two coordinate axes, such as (X, Y) and (X, Y, Z). In the following, an example of a positioning map will be described using emotion map 300 shown in FIG. 9.
[0053] The emotion map 300 is expressed in a two-dimensional coordinate system as shown in Fig. 9, and has an X-axis, which is a first coordinate axis for expressing a pseudo relief level, and a Y-axis, which is a second coordinate axis for expressing a pseudo activity level. The larger the absolute value of the X-coordinate value (X value) is positive, the higher the relief level is, and the larger the absolute value of the Y-coordinate value (Y value) is positive, the higher the excitement level is. Also, the larger the absolute value of the X-value is negative, the higher the anxiety level is, and the larger the absolute value of the Y-value is negative, the higher the lethargy level is.
[0054] The emotion parameter 121 is expressed by coordinate values (X, Y) that are positions on the emotion map 300, using an X value that indicates a degree of relief and anxiety and a Y value that indicates a degree of excitement and apathy. For example, when both the X value and the Y value are positive and large, the emotion parameter 121 indicates an emotion of "joy". When the X value is negative and large and the Y value is positive and large, the emotion parameter 121 indicates an emotion of "irritation". When the X value and the Y value are negative and large, the emotion parameter 121 indicates an emotion of "sadness". When the X value is positive and large and the Y value is negative and large, the emotion parameter 121 indicates an emotion of "calmness".
[0055] The origin (0,0) on emotion map 300 represents normal emotion. The initial value of emotion parameter 121 is the origin (0,0). The size of emotion map 300 has a maximum value of 200 and a minimum value of -200 for both X and Y values.
[0056] The parameter update unit 113 updates the emotion parameter 121 by moving the position of the emotion parameter 121 on such emotion map 300. For example, when the external stimulus acquisition unit 111 acquires an external stimulus of "a loud noise was heard", the parameter update unit 113 moves the emotion parameter 121 to the left on the emotion map 300 as shown in FIG. 10. This increases the emotion of anxiety. Alternatively, when the external stimulus acquisition unit 111 acquires an external stimulus of "being stroked", the parameter update unit 113 moves the emotion parameter 121 to the upper right on the emotion map 300 as shown in FIG. 11. This increases the emotion of joy.
[0057] More specifically, parameter update section 113 derives a movement vector (NextX, NextY) indicating the movement direction and amount of movement of emotion parameter 121 in emotion map 300, according to the following equation (1). To this end, parameter update section 113 acquires coefficients α, L, Px, Py, Fx, Fy, dX, and dY. Note that in equation (1), "*" represents multiplication.
[0058] (NextX,NextY) = α*L*(Px*Fx*dX,Py*Fy*dY) …(1)
[0059] First, parameter update section 113 acquires basic movement amounts dX, dY of emotion parameter 121, which is an evaluation value according to the external stimulus acquired by external stimulus acquisition section 111. To this end, parameter update section 113 refers to event management table 123.
[0060] The event management table 123 is a table for managing events (external stimuli) that occur to the robot 200. Specifically, as shown in Fig. 12, the event management table 123 defines basic movement amounts dX and dY, correction values Fx and Fy, and a preference coefficient L in association with each of a plurality of events that may occur.
[0061] When the external stimulus acquisition unit 111 acquires an external stimulus, the parameter update unit 113 identifies an event corresponding to the acquired external stimulus from among a plurality of events defined in the event management table 123. Then, the parameter update unit 113 reads out the basic movement amounts dX and dY associated with the identified event in the event management table 123.
[0062] When there are multiple values of the basic movement amounts dX and dY associated with the identified event in the event management table 123, the parameter update unit 113 randomly selects one from the multiple values.
[0063] Secondly, parameter update section 113 acquires correction values Fx, Fy. Here, correction values Fx, Fy are coefficients for correcting the movement direction and movement amount of emotion parameter 121 on emotion map 300. Correction values Fx, Fy are linked to each of a plurality of events in event management table 123. Parameter update section 113, like basic movement amounts dX, dY, references event management table 123 and reads out correction values Fx, Fy linked to the identified event.
[0064] More specifically, correction values Fx, Fy may be determined as fixed values depending on the event, or may be determined as variable values depending on the current position of emotion parameter 121 on emotion map 300.
[0065] 12, the correction values Fx and Fy associated with the events of event numbers 1, 2, and 7 to 12 are set to fixed values. When the external stimulus acquired by the external stimulus acquisition unit 111 corresponds to any of the events of event numbers 1, 2, and 7 to 12, the parameter update unit 113 reads out the correction values Fx and Fy, which are fixed values, from the event management table 123.
[0066] 13 shows, as an example, a two-dimensional distribution of the correction values Fx, Fy for the event number 1, "a loud noise was heard", on the emotion map 300. In the event management table 123, the correction values Fx, Fy associated with the event number 1 are fixed values (-2, 0). Therefore, the direction of the correction values Fx, Fy associated with the event number 1 is set to the -X direction, regardless of the position on the emotion map 300, as shown in FIG.
[0067] In contrast, the correction values Fx and Fy associated with the events of event numbers 3 to 6 are not fixed values, but are determined as variable values according to the position on the emotion map 300. As an example, FIG. 14 shows a two-dimensional distribution of the correction values Fx and Fy in the case of event number 3, "horizontal, body stroked", on the emotion map 300. In this example, in the second quadrant where the X value is negative and the Y value is positive, and in the third quadrant where both the X value and the Y value are negative, the direction of the correction values Fx and Fy is set to the direction toward the origin (0,0). In the first quadrant where both the X value and the Y value are positive, and in the fourth quadrant where the X value is positive and the Y value is negative, the direction of the correction values Fx and Fy is set to the direction toward the upper right coordinate value (200,200).
[0068] In other words, correction values Fx, Fy for event number 3 correct the position of emotion parameter 121 in the second and third quadrants so as to approach the origin, which is the reference position on emotion map 300, and in the first and fourth quadrants correct the position of emotion parameter 121 so as to approach the upper right position on emotion map 300. Note that correction values Fx, Fy for event numbers 4 to 6 will be explained as showing the same tendency as event number 1.
[0069] Correction values Fx, Fy, which are such variable values, are defined in lookup table 124. An example of lookup table 124 is shown in Fig. 15. Lookup table 124 has tables 1 to 4 corresponding to event numbers 3 to 6. Tables 1 to 4 define correction values Fx, Fy to be used when external stimuli of event numbers 3 to 6, respectively, are acquired, as values that depend on the current position of emotion parameter 121 on emotion map 300.
[0070] More specifically, each of Tables 1 to 4 associates the current position of emotion parameter 121 on emotion map 300, which is an input value, with correction values Fx, Fy, which are output values. When the external stimulus acquired by external stimulus acquisition section 111 corresponds to any of the events with event numbers 3 to 6, parameter update section 113 refers to event management table 123 to identify a table in which correction values Fx, Fy corresponding to the acquired external stimulus are defined. Then, parameter update section 113 refers to lookup table 124 to read out correction values Fx, Fy associated with the current position of emotion parameter 121 in the identified table.
[0071] In this way, when correction values Fx, Fy are determined as variation values according to the position of emotion parameter 121, the position of emotion parameter 121 is corrected to approach the origin or the upper right position, which is the reference position on emotion map 300.
[0072] The reason for correcting the position of emotion parameter 121 using such correction values Fx, Fy is that it is difficult to express natural emotional changes of a living creature using only basic movement amounts dX, dY. Specifically, as shown in Figure 16, an example will be explained in which emotion parameter 121 is in the second quadrant of emotion map 300 and moves to the first quadrant of emotion map 300 in response to external stimuli of event numbers 3 to 6.
[0073] When emotion parameter 121 is moved using only basic movement amounts dX and dY, emotion parameter 121 moves from the upper left to the upper right on emotion map 300 without passing through the origin, as shown by the dashed arrow in Fig. 16. Therefore, the simulated emotion of robot 200 changes from "irritation" through "excitement" to "joy".
[0074] In this way, passing through "excitement" when changing from "irritation" to "happiness" is unnatural as an emotional change in an actual living creature. When an actual living creature changes its emotion from "irritation" to "happiness", it tends to change from "irritation" to "normal" once and then back to "happiness". Taking into consideration such a tendency of emotional change, the correction values Fx and Fy shown in Figs. 14 and 15 are set to correct the position of the emotion parameter 121 on the emotion map 300 so as to approach the origin in the second and third quadrants, and to approach the upper right position in the first and fourth quadrants.
[0075] When emotion parameter 121 is moved by adding such correction values Fx, Fy to basic movement amounts dX, dY, emotion parameter 121 changes the simulated emotion of robot 200 from "irritation" back to "normal" and then to "joy" as shown by the solid arrow in Fig. 16. This makes it possible to more realistically simulate the emotional changes of a living creature when the position of emotion parameter 121 on emotion map 300 moves across multiple different quadrants.
[0076] Thirdly, the parameter update unit 113 acquires personality coefficients Px and Py. The personality coefficients Px and Py are coefficients indicating the pseudo personality of the robot 200. The pseudo personality of the robot 200 is a parameter set for each individual robot 200 in order to give the robot 200 an individuality.
[0077] The personality of the robot 200 is determined by, for example, four types of personality values: "cheerful", "active", "shy" and "spoiled". These four types of personality values may be given to the robot 200 as fixed values in advance, or may change over time. The parameter update unit 113 calculates personality coefficients Px, Py from the four types of personality values set for the robot 200 according to the following formula (2).
[0078] If dX>0, Px=(10+joyfulness) / 20 If dX≦0, Px=(10+shy personality value) / 20 If dY>0, Py=(10+active personality value) / 20 If dY≦0, Py=(10+spoiled personality value) / 20 …(2)
[0079] Specifically, the parameter update unit 113 calculates the personality coefficients Px, Py according to different formulas depending on whether the basic movement amounts dX, dY are positive or not. For example, if the four personality values set for the robot 200 are "cheerful=0, active=1, shy=2, and spoiled=10," the parameter update unit 113 calculates the personality coefficients Px, Py according to the following formula (3).
[0080] If dX>0, Px=(10+0) / 20=0.50 If dX≦0, Px=(10+2) / 20=0.60 If dY>0, Py=(10+1) / 20=0.55 If dY≦0, Py=(10+10) / 20=1.00 …(3)
[0081] Fourth, the parameter update unit 113 acquires a preference coefficient L. The preference coefficient L is a coefficient indicating the pseudo preference of the robot 200 for an external stimulus (event). The preference coefficient L is set for each individual robot 200 in order to give each robot 200 an individuality.
[0082] The preference coefficient L is associated with each of the multiple events in the event management table 123. The parameter update unit 113 refers to the event management table 123 and reads out the preference coefficient L associated with the identified event, similar to the basic movement amounts dX and dY and the correction values Fx and Fy.
[0083] As an example, the preference coefficient L is a value greater than 1.0 for an event that the robot 200 likes, a value less than 1.0 for an event that the robot 200 dislikes, and 1.0 for other events. In the example of the event management table 123 shown in FIG. 12, if the robot 200 likes being spoken to, the preference coefficient L corresponding to "being spoken to" is set to 2.0. Also, if the robot 200 dislikes being turned upside down, the preference coefficient L corresponding to "being turned upside down" is set to 0.7. In this way, the preference coefficient L is set as a fixed value for the robot 200 for each event.
[0084] Fifth, the parameter update unit 113 acquires a history coefficient α. The history coefficient α is a coefficient based on the history of past events, and indicates the occurrence frequency of the external stimulus acquired by the external stimulus acquisition unit 111 in the past.
[0085] The parameter update unit 113 refers to the history buffer 125 to acquire the history coefficient α. The history buffer 125 accumulates data of external stimuli acquired in the past by the external stimulus acquisition unit 111. As shown in FIG. 17 as an example, the history buffer 125 stores the event numbers of events that occurred in the past in association with the occurrence times of the events. When the external stimulus acquisition unit 111 acquires an external stimulus, the external stimulus acquisition unit 111 associates the event number indicating the acquired external stimulus with the occurrence time, which is the time when the external stimulus was acquired, and stores the associated event number in the history buffer 125.
[0086] More specifically, history buffer 125 has a ring buffer structure. In other words, there is an upper limit (N in the example of FIG. 17) on the number of pieces of data that can be stored in history buffer 125. When N pieces of data are already stored in history buffer 125 and new data is to be stored in history buffer 125, the data with the oldest occurrence time among the N pieces of data stored in history buffer 125 is deleted. Furthermore, even if there is free space in history buffer 125, old data may be deleted at regular intervals.
[0087] The parameter update unit 113 calculates the occurrence frequency of each event by referring to the history buffer 125. Then, the parameter update unit 113 derives a history coefficient α for each event according to the occurrence frequency.
[0088] In general, the less frequently an event occurs, the less stimulating it feels when it occurs because people are less accustomed to it. On the other hand, the more frequently an event occurs, the less stimulating it feels when it occurs because people are more accustomed to it.
[0089] Therefore, parameter updating section 113 sets history coefficient α to a value greater than 1.0 for an event that occurs less frequently, so that the position of emotion parameter 121 on emotion map 300 is moved significantly from the current position when that event occurs. And parameter updating section 113 sets history coefficient α to a value smaller than 1.0 for an event that occurs more frequently, so that the position of emotion parameter 121 on emotion map 300 is not moved significantly from the current position when that event occurs.
[0090] After acquiring the basic movement amounts dX, dY, the correction values Fx, Fy, the personality coefficients Px, Py, the preference coefficient L, and the history coefficient α in this manner, the parameter update unit 113 calculates the movement vector (NextX, NextY) according to the above equation (1).
[0091] After calculating the movement vector (NextX, NextY), parameter update unit 113 calculates a fluctuation component in order to perform fluctuation control. The fluctuation component is a parameter for allowing emotion parameter 121 to change naturally. Specifically, as shown in Fig. 18, the fluctuation component is represented in polar coordinates using length Len, which is a radial component, and angle r, which is an angular component.
[0092] The parameter update unit 113 calculates the final movement vector (Nx, Ny) taking into account the fluctuation component according to the following equation (4).
[0093] (Nx, Ny) = YURAGI (NextX, NextY) Nx = Len*cos(r) + NextX Ny = Len*sin(r) + NextY …(4)
[0094] More specifically, since it is desirable for the fluctuation component to change continuously, the length Len and angle r are set using random numbers as shown in the following formula (5): In formula (5), rand() randomly takes a value in the range from +1 to -1 at regular intervals (for example, 1 minute).
[0095] Len = Len+rand() r = r+rand() …(5)
[0096] By using such random numbers, the length Len has an initial value of 0 and takes a random value in the range of -50 to +50. The angle r has an initial value of 0 and takes a random value in the range of -360° to +360°.
[0097] More specifically, in order for the fluctuation component to mimic the daily mood changes and biorhythms of living things, the angle r is set to complete a full revolution in a predetermined cycle (e.g., about one day). In other words, the angle r is not set completely randomly, but is set to a random value under the restriction that the amount of change in the predetermined cycle is 360°.
[0098] Having calculated movement vector (Nx, Ny) taking into account the above-mentioned fluctuation components, parameter update section 113 moves the position of emotion parameter 121 on emotion map 300 in accordance with the calculated movement vector (Nx, Ny). Specifically, parameter update section 113 moves the position of emotion parameter 121 on emotion map 300 to a target position of coordinate values (X0+Nx, Y0+Ny), obtained by adding the movement vector (Nx, Ny) to the coordinate values (X0, Y0) of the current position of emotion parameter 121.
[0099] Here, the movement vector (Nx, Ny) is derived based on correction values Fx, Fy that correct the position of emotion parameter 121 so as to approach the reference position on emotion map 300. Therefore, the position of emotion parameter 121 changes from "irritation" back to "normal" and then to "joy" as shown by the solid arrow in Fig. 16. In this way, when parameter update unit 113 moves the position of emotion parameter 121 on emotion map 300 across multiple different quadrants, it moves the position of emotion parameter 121 from the current position towards the reference position and then to the target position. This makes it possible to express natural changes in the emotions of a living creature.
[0100] Note that, in addition to updating emotion parameter 121 in response to an external stimulus, parameter update unit 113 also updates emotion parameter 121 when no external stimulus is occurring. To be more specific, after updating emotion parameter 121 in response to an external stimulus acquired by external stimulus acquisition unit 111, parameter update unit 113 moves the position of emotion parameter 121 on emotion map 300 closer to origin (0,0), which is the reference position, over time until the next external stimulus is acquired by external stimulus acquisition unit 111. In this way, while no external stimulus is occurring, the simulated emotion of robot 200 gradually returns to a normal state.
[0101] Movement control section 112 causes robot 200 to move in accordance with emotion parameters 121 updated by parameter update section 113. In other words, when a prescribed timing arrives after emotion parameters 121 are updated by parameter update section 113, movement control section 112 causes robot 200 to execute an emotion movement, which is a movement corresponding to updated emotion parameters 121.
[0102] For example, when the emotion parameter 121 represents "happiness", the motion control unit 112 causes the robot 200 to perform an action that appears to be happy, and when the emotion parameter 121 represents "sadness", the motion control unit 112 causes the robot 200 to perform an action that appears to be sad. Alternatively, when the emotion parameter 121 represents "happiness", the motion control unit 112 causes the output unit 230 to output a cry that sounds happy, and when the emotion parameter 121 represents "sadness", the motion control unit 112 causes the output unit 230 to output a cry that sounds sad. In addition, when the output unit 230 includes a display, an LED, or the like, the motion control unit 112 may display emotions such as happiness and sadness on a display, or express them by the color and brightness of emitted light.
[0103] More specifically, the action control unit 112 refers to the emotion expression table 122 and causes the robot 200 to execute an action corresponding to the emotion parameters 121 updated by the parameter update unit 113. The emotion expression table 122 is a table that defines actions corresponding to each emotion represented by coordinates on the emotion map 300. The emotion expression table 122 is represented, for example, by a two-dimensional array [X'][Y'].
[0104] The X' and Y' values in the emotion expression table 122 correspond to the coordinate values (X, Y) on the emotion map 300. Specifically, the X' and Y' values in the emotion expression table 122 correspond to the value (rounded off) obtained by dividing the coordinate values (X, Y) on the emotion map 300 by a reference magnification value. As an example, if the reference magnification value is 100, then for the range (-200 to +200) of the coordinate values (X, Y) on the emotion map 300, the X' and Y' values can take five values: -2, -1, 0, 1, and 2. In this case, the emotion expression table 122 defines 5 x 5 = 25 different actions.
[0105] The movement control unit 112 specifies the values of X' and Y' corresponding to the coordinate values (X, Y) of the emotion parameter 121 on the emotion map 300. Then, the movement control unit 112 causes the robot 200 to execute the movement represented by the specified X' and Y' in the emotion expression table 122.
[0106] Next, the flow of the robot control process according to this embodiment will be described with reference to Fig. 19. The robot control process shown in Fig. 19 is executed by the control unit 110 of the control device 100 when the robot 200 is powered on. The robot control process shown in Fig. 19 is an example of a robot control method.
[0107] When the robot control process starts, the control unit 110 executes an initialization process (step S1). In the initialization process, the control unit 110 sets the position of the emotion parameter 121 on the emotion map 300 to the origin, and sets the values of the movement vectors (NextX, NextY) and (Nx, Ny) and the value of the fluctuation component (L, r) to 0. The control unit 110 also sets the system timer to 0, and deletes all data of the event numbers and occurrence times stored in the history buffer 125.
[0108] When the initialization process is executed, the control unit 110 functions as the external stimulus acquisition unit 111 and determines whether or not an external stimulus has been acquired (step S2). Specifically, the control unit 110 determines whether or not an external stimulus such as "a loud noise was made," "someone spoke to," "someone stroked," "someone lifted up," "someone turned upside down," "it became brighter," "it became darker," etc. has occurred based on the detection value by the sensor unit 210. Step S2 is an example of an external stimulus acquisition step.
[0109] When an external stimulus is acquired (step S2; YES), the control unit 110 functions as the motion control unit 112 and causes the robot 200 to execute a motion corresponding to the acquired external stimulus (step S3). For example, when "a loud noise was heard", the control unit 110 causes the robot 200 to execute a motion that responds to the loud noise. When "the robot is turned upside down", the control unit 110 causes the robot 200 to execute a motion that responds to being turned upside down. When "someone speaks to" the control unit 110 causes the robot 200 to execute a motion that responds to being spoken to. When "someone petted" the control unit 110 causes the robot 200 to execute a motion that responds to being petted.
[0110] Next, control section 110 functions as parameter update section 113, and calculates a movement vector of emotion parameter 121 (step S4). Details of the movement vector calculation process in step S4 will be described with reference to FIG.
[0111] 20 starts, first, control unit 110 acquires basic movement amounts dX, dY of emotion parameters 121 (step S41). Control unit 110 references event management table 123 and reads out basic movement amounts dX, dY corresponding to the external stimulus acquired in step S2.
[0112] Secondly, control unit 110 acquires correction values Fx, Fy (step S42). Control unit 110 refers to event management table 123 and reads out correction values Fx, Fy corresponding to the external stimulus acquired in step S2. At this time, if correction values Fx, Fy corresponding to the acquired external stimulus are defined in lookup table 124, control unit 110 refers to lookup table 124 and reads out correction values Fx, Fy corresponding to the current position of emotion parameter 121 on emotion map 300.
[0113] Third, the control unit 110 acquires personality coefficients Px, Py (step S43). The control unit 110 calculates the personality coefficients Px, Py from the four types of personality values set for the robot 200 and the basic movement amounts dX, dY according to the above formula (2).
[0114] Fourth, the control unit 110 acquires the preference coefficient L (step S44). The control unit 110 refers to the event management table 123 and reads out the preference coefficient L corresponding to the external stimulus acquired in step S2.
[0115] Fifth, the control unit 110 acquires a history coefficient α (step S45). The control unit 110 refers to the history buffer 125 and calculates the past occurrence frequency of the external stimulus acquired in step S2. Then, the control unit 110 sets a larger value as the history coefficient α as the calculated occurrence frequency is smaller.
[0116] After obtaining the coefficients α, L, Px, Py, Fx, Fy, dX, and dY in this manner, the control unit 110 calculates the motion vector (NextX, NextY) according to the above formula (1) (step S46). Then, the control unit 110 calculates the motion vector (Nx, Ny) taking into account the fluctuation component according to the above formula (4) (step S47). With this, the motion vector calculation process shown in FIG. 20 ends.
[0117] Returning to Fig. 19, after calculating movement vector (Nx, Ny) of emotion parameter 121 in step S4, control unit 110 functions as parameter update unit 113 and moves emotion parameter 121 on emotion map 300 (step S5). Control unit 110 adds calculated movement vector (Nx, Ny) to the current position of emotion parameter 121 and sets the position as the new position of emotion parameter 121. Step S5 is an example of a parameter updating step.
[0118] When emotion parameter 121 is moved, control unit 110 functions as motion control unit 112 and causes robot 200 to execute a motion corresponding to emotion parameter 121 after the movement (step S6). For example, when emotion parameter 121 represents "happiness", control unit 110 causes robot 200 to execute a motion that looks like happiness, and when emotion parameter 121 represents "sadness", control unit 110 causes robot 200 to execute a motion that looks like sadness. Step S6 is an example of a motion control step.
[0119] When the robot 200 is operated, the control unit 110 updates the history buffer 125 (step S7). The control unit 110 stores in the history buffer 125 the event number indicating the external stimulus acquired in step S2 and the time when the external stimulus was acquired in association with each other.
[0120] After updating the history buffer 125, the control unit 110 executes interrupt processing as necessary (step S8). Specifically, the control unit 110 executes interrupt processing at regular time intervals (for example, every minute). Details of the interrupt processing in step S8 will be described with reference to FIG. 21.
[0121] 21 starts, the control unit 110 updates the system timer to the current time (step S81). For example, when executing the interrupt process at one-minute intervals, the control unit 110 adds 60 seconds to the value indicating the current time of the system timer.
[0122] After updating the system timer, the control unit 110 sets the fluctuation component (step S82). The control unit 110 sets the length Len and the angle r using the above formula (5) and random numbers.
[0123] After setting the fluctuation component, the control unit 110 updates the history buffer 125 (step S83). The control unit 110 deletes data that is more than one day before the current time from the data stored in the history buffer 125. This ends the interrupt process shown in FIG.
[0124] 19, after executing the interrupt process, the control unit 110 returns the process to step S2 and determines again whether or not an external stimulus has been acquired. If an external stimulus has been acquired, the control unit 110 executes the processes of steps S4 to S8 again.
[0125] On the other hand, if no external stimulus has been acquired in step S2 (step S2; NO), the control unit 110 functions as the motion control unit 112 and causes the robot 200 to perform a spontaneous motion (step S9). To be more specific, the control unit 110 causes the robot 200 to perform a motion that does not depend on an external stimulus, such as a motion that simulates breathing.
[0126] Next, the control unit 110 functions as the parameter update unit 113 and gradually moves the emotion parameter 121 to the origin on the emotion map 300 (step S10). As a result, while no external stimuli are occurring, the simulated emotion of the robot 200 gradually returns to a normal state.
[0127] Thereafter, the control unit 110 executes interrupt processing as necessary in step S8, and returns the processing to step S2. In this manner, the control unit 110 repeatedly executes the processing of steps S2 to S10 as long as the robot 200 is powered on and can operate normally.
[0128] As described above, the robot 200 according to this embodiment is a robot that operates according to the emotion parameter 121 that indicates a simulated emotion, and when updating the emotion parameter 121, the position of the emotion parameter 121 on the emotion map 300 is moved based on the basic movement amount dX, dY that is an evaluation value according to an external stimulus and the correction value Fx, Fy according to the current position of the emotion parameter 121 on the emotion map 300. By using the correction value Fx, Fy as the basis, for example, by moving the position of the emotion parameter 121 on the emotion map 300 so that it passes through the origin, it becomes possible to express complex emotion changes that cannot be expressed by the basic movement amount dX, dY alone. As a result, the robot 200 according to this embodiment can mimic natural changes in the emotions of living things, and can more realistically imitate living things.
[0129] Moreover, the robot 200 according to this embodiment moves the position of the emotion parameter 121 on the emotion map 300 further based on the personality coefficients Px, Py, the preference coefficient L, the history coefficient α, and the fluctuation component. Based on the personality coefficients Px, Py or the preference coefficient L, the way of emotion change can be made different depending on the personality or likes and dislikes for external stimuli. Therefore, the robot 200 can have individuality. Based on the history coefficient α, the way of emotion change can be made different depending on the magnitude of the past occurrence frequency. Furthermore, based on the fluctuation component, the emotion can be changed continuously, and the fluctuation of emotion like biorhythm can be expressed. In this way, based on the personality coefficients Px, Py, the preference coefficient L, the history coefficient α, and the fluctuation component, the robot 200 according to this embodiment can more realistically simulate the natural change of emotions of living creatures.
[0130] (Modification) Although the embodiment of the present invention has been described above, the above embodiment is merely an example, and the scope of application of the present invention is not limited to this. In other words, the embodiment of the present invention can be applied in various ways, and all embodiments are included in the scope of the present invention.
[0131] For example, in the above embodiment, the parameter update unit 113 calculates the movement vector (Nx, Ny) of the emotion parameter 121 based on the personality coefficients Px, Py, the preference coefficient L, the history coefficient α, and the fluctuation component in addition to the basic movement amounts dX, dY and the correction values Fx, Fy. However, the parameter update unit 113 may calculate the movement vector (Nx, Ny) without based on some or all of the personality coefficients Px, Py, the preference coefficient L, the history coefficient α, and the fluctuation component. By based on the personality coefficients Px, Py, the preference coefficient L, the history coefficient α, and the fluctuation component, the movement vector (Nx, Ny) can be calculated more flexibly, while by not based on some or all of these, the movement vector (Nx, Ny) can be calculated more simply.
[0132] In the above embodiment, correction values Fx, Fy are values that correct the position of emotion parameter 121 on emotion map 300 to approach the origin or the upper right position, which is the reference position, when external stimuli of event numbers 3 to 6 are acquired. However, the external stimuli for which correction values Fx, Fy are determined as fluctuation values according to the current position of emotion parameter 121 are not limited to the external stimuli of event numbers 3 to 6, and may be any external stimuli.
[0133] Furthermore, the reference position is not limited to the origin or the upper right position, and may be any position on the emotion map 300. For example, the reference position may be changed according to the personality coefficients Px and Py set for the robot 200. This allows the way emotions change to differ depending on the personality, so that the robot 200 can be given individuality.
[0134] In the above embodiment, as shown in Figs. 14 and 15, the correction values Fx and Fy are determined so as to bring the position of emotion parameter 121 closer to the origin in the second and third quadrants and closer to the upper right position in the first and fourth quadrants. However, the two-dimensional distribution of correction values Fx and Fy is not limited to this. Furthermore, correction values Fx and Fy are not limited to correction so as to bring the position closer to a specific reference position on emotion map 300. In other words, correction values Fx and Fy may be determined as fluctuation values depending on how the current position of emotion parameter 121 is. Even if the direction of correction values Fx and Fy is not set to a direction toward a specific reference position, by determining correction values Fx and Fy as fluctuation values, it becomes possible to express complex changes in emotion that cannot be expressed by basic movement amounts dX and dY alone.
[0135] In the above embodiment, the emotion map 300 is represented in a two-dimensional coordinate system. However, the emotion map 300 may be represented in a coordinate system with more than two dimensions, and the emotion parameter 121 may be set to a value equal to the number of dimensions of the emotion map 300. Furthermore, the coordinate axes of the emotion map 300 are not limited to the pseudo relief and activity levels, and may represent other emotion levels.
[0136] In the above embodiment, the exterior 201 is formed in a cylindrical shape from the head 204 to the torso 206, and the robot 200 has a crawling shape. However, the robot 200 is not limited to imitating a crawling creature. For example, the robot 200 may have a shape with arms and legs and imitate a four-legged or two-legged creature.
[0137] In the above embodiment, the control device 100 is built into the robot 200, but the control device 100 may be a separate device (e.g., a server) without being built into the robot 200. When the control device 100 exists outside the robot 200, the robot 200 communicates with the control device 100 via a communication unit to transmit and receive data to and from the control device 100. Through such communication with the robot 200, the external stimulus acquisition unit 111 acquires the external stimulus detected by the sensor unit 210, and the operation control unit 112 controls the drive unit 220 and the output unit 230.
[0138] In the above embodiment, the control unit 110 functions as each of the external stimulus acquisition unit 111, the operation control unit 112, and the parameter update unit 113 by the CPU executing the program stored in the ROM. However, in the present invention, the control unit 110 may include dedicated hardware such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or various control circuits instead of the CPU, and the dedicated hardware may function as each of the external stimulus acquisition unit 111, the operation control unit 112, and the parameter update unit 113. In this case, the functions of each unit may be realized by individual hardware, or the functions of each unit may be realized by a single hardware. In addition, some of the functions of each unit may be realized by dedicated hardware, and the other parts may be realized by software or firmware.
[0139] It is possible to provide a robot that is equipped with the configuration for realizing the functions according to the present invention, and also to make an existing information processing device or the like function as a robot according to the present invention by applying a program. That is, by applying a program for realizing each functional configuration of the robot 200 exemplified in the above embodiment so that it can be executed by a CPU or the like that controls an existing information processing device, it can function as a robot according to the present invention.
[0140] Moreover, the method of applying such a program is arbitrary. For example, the program can be applied by storing it in a computer-readable storage medium such as a flexible disk, a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disc)-ROM, or a memory card. Furthermore, the program can be superimposed on a carrier wave and applied via a communication medium such as the Internet. For example, the program can be posted and distributed on a bulletin board (BBS: Bulletin Board System) on a communication network. Then, the program can be started and executed under the control of an OS (Operating System) in the same way as other application programs, thereby enabling the above-mentioned processing to be executed.
[0141] The above describes preferred embodiments of the present invention. However, the present invention is not limited to the above-described embodiments, and various modifications and substitutions can be made to the above-described embodiments without departing from the scope of the claims. [Explanation of symbols]
[0142] 100...control device, 110...control unit, 111...external stimulus acquisition unit, 112...motion control unit, 113...parameter update unit, 120...storage unit, 121...emotion parameters, 122...emotion expression table, 123...event management table, 124...lookup table, 125...history buffer, 200...robot, 201...exterior, 202...decorative part, 203...fur, 204...head, 205...connection unit, 206...torso unit, 207...casing, 210...sensor unit, 211...touch sensor, 212...acceleration sensor, 213...microphone, 214...gyro sensor, 215...illuminance sensor, 220...drive unit, 221...twist motor, 222...up and down motor, 230...output unit, 231...speaker, 240...operation unit, 250...battery, 300...emotion map, BL...bus line
Claims
1. A robot that operates according to an emotion parameter indicating a pseudo-emotion, An external stimulus acquisition means for acquiring an external stimulus; a parameter update means for updating the emotion parameter in response to the external stimulus acquired by the external stimulus acquisition means; an action control means for causing the robot to act in accordance with the emotion parameters updated by the parameter update means; Equipped with the emotion parameter is represented by a position on a positioning map having at least two coordinate axes; when updating the emotion parameter, the parameter update means moves a position of the emotion parameter on the positioning map based on an evaluation value corresponding to the external stimulus acquired by the external stimulus acquisition means and a correction value corresponding to a current position of the emotion parameter on the positioning map. A robot characterized by:
2. the correction value is a value for correcting the position of the emotion parameter so as to approach a reference position on the positioning map.
2. The robot according to claim 1 .
3. when the position of the emotion parameter on the positioning map is to be moved across a plurality of different quadrants, the parameter update means moves the position of the emotion parameter from the current position towards the reference position and then moves it to a target position; 3. The robot according to claim 2 .
4. said parameter update means updates said emotion parameter in response to said external stimulus acquired by said external stimulus acquisition means, and thereafter brings a position of said emotion parameter on said positioning map closer to said reference position over time until the external stimulus is next acquired by said external stimulus acquisition means.
3. The robot according to claim 2 .
5. The reference position is the origin of the positioning map.
3. The robot according to claim 2 .
6. the positioning map has, as the at least two coordinate axes, a first coordinate axis for representing a pseudo comfort level and a second coordinate axis for representing a pseudo activity level; The robot according to any one of claims 1 to 5.
7. when updating the emotion parameter, said parameter update means moves a position of the emotion parameter on said positioning map further based on a fluctuation component using a random number. The robot according to any one of claims 1 to 5.
8. The fluctuation component is represented by polar coordinates, The radial component of the fluctuation component is set using a random number, The angle component of the fluctuation component is set to complete a cycle in a predetermined period.
8. The robot according to claim 7 .
9. when updating the emotion parameter, the parameter update means moves a position of the emotion parameter on the positioning map further based on a personality coefficient indicating a simulated personality of the robot. The robot according to any one of claims 1 to 5.
10. when updating the emotion parameter, the parameter update means moves a position of the emotion parameter on the positioning map further based on a preference coefficient indicating a pseudo-preference of the robot for the external stimulus acquired by the external stimulus acquisition means; The robot according to any one of claims 1 to 5.
11. when updating the emotion parameter, the parameter update means moves a position of the emotion parameter on the positioning map further based on the past occurrence frequency of the external stimulus acquired by the external stimulus acquisition means. The robot according to any one of claims 1 to 5.
12. when updating the emotion parameter, the parameter update means moves the position of the emotion parameter on the positioning map by a larger amount as the occurrence frequency becomes lower.
12. The robot according to claim 11 .
13. A method for controlling a robot that operates in accordance with an emotion parameter indicating a simulated emotion, comprising: An external stimulus acquisition step of acquiring an external stimulus; a parameter updating step of updating the emotion parameter in response to the external stimulus acquired in the external stimulus acquiring step; an action control step of causing the robot to act in accordance with the emotion parameters updated in the parameter update step; Equipped with the emotion parameter is represented by a position on a positioning map having at least two coordinate axes; in the parameter updating step, when updating the emotion parameter, a position of the emotion parameter on the positioning map is moved based on an evaluation value corresponding to the external stimulus acquired in the external stimulus acquiring step and a correction value corresponding to a current position of the emotion parameter on the positioning map; A method for controlling a robot comprising the steps of:
14. A robot computer that operates according to emotion parameters that indicate pseudo-emotions. An external stimulus acquisition means for acquiring an external stimulus; a parameter updating means for updating the emotion parameter in response to the external stimulus acquired by the external stimulus acquiring means; an action control means for causing the robot to act in accordance with the emotion parameters updated by the parameter update means; A program that functions as the emotion parameter is represented by a position on a positioning map having at least two coordinate axes; when updating the emotion parameter, the parameter update means moves a position of the emotion parameter on the positioning map based on an evaluation value corresponding to the external stimulus acquired by the external stimulus acquisition means and a correction value corresponding to a current position of the emotion parameter on the positioning map. A program to make it function like this.
Citation Information
Patent Citations
Air conditioning system and air conditioner
JP2007170761A
Emotion engine, emotion engine system, and method of controlling electronic device
JP2011115932A
Communication device, communication robot, and communication control program
JP2019000937A
Autonomously acting type robot shy around people
JP2019005591A
Robot, robot control method and program
JP2019217605A