Robot control device, robot, method for controlling robot, and program
The robot control device generates new operation patterns based on sensor inputs and user interactions, enabling lifelike actions and personalized behavior in robots.
Patent Information
- Application Number
- JP2023216539
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-22
- Publication Date
- 2025-07-03
AI Technical Summary
Conventional robots lack the ability to perform lifelike operations, as their actions are fixed and do not change, resulting in a lack of characteristics typical of living things.
A robot control device that includes a control unit capable of generating new operation patterns by combining multiple operation elements based on evaluation values derived from sensor inputs, allowing the robot to perform a variety of actions in response to external stimuli and user interactions.
The robot is able to perform lifelike actions by adapting its operations based on user interactions, simulating learning and growth, and developing unique personalities for each user.
Smart Images

Figure 2025099684000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot control device, a robot, a robot control method, and a program.
Background Art
[0002] Conventionally, there is known a technique of causing a robot to perform different personalized operations for each robot by correcting operation data for causing the robot to perform a certain operation based on personality parameters representing the personality of the robot (for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, the operations performed by each robot are fixed and do not change. For this reason, when the above prior art is applied to a robot imitating a living thing, there is a problem that the robot repeatedly performs uniform operations and lacks the characteristics of a living thing.
[0005] An object of the present invention is to realize a robot that performs lifelike operations.
Means for Solving the Problems
[0006] To solve the above problems, a robot control device according to the present invention is a robot control device that controls a robot equipped with a sensor for detecting an external action, and includes a control unit that causes the robot to perform operations according to a plurality of operation patterns each composed of a combination of two or more operation elements in response to the action detected by the sensor. The control unit is Derive the evaluation value for each of the plurality of operation patterns, Generate a new operation pattern by combining a plurality of operation elements that make up each of the plurality of operation patterns based on the evaluation value.
Advantages of the Invention
[0007] According to the present invention, a robot that performs lifelike actions can be realized.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Embodiments for Carrying Out the Invention
[0009] Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0010] FIG. 1 is a view showing the appearance of the robot 1. The robot 1 includes a main body 100 and an exterior 200 that covers the main body 100. The robot 1 is a pet robot that mimics a small living creature. The robot 1 can perform a plurality of different mannerisms (actions). The mannerisms include mannerisms such as moving the neck and making a crying sound. The exterior 200 deforms following the movement of the main body 100. The exterior 200 has fur formed of a pile fabric, a decorative member that mimics eyes, and the like.
[0011] FIG. 2 is a schematic view showing the configuration of the main body 100 of the robot 1. The main body 100 has a head 101, a body portion 103, and a connecting portion 102 that connects the head 101 and the body portion 103. In this specification, the portion corresponding to the head 101 of the robot 1 is referred to as the "neck". The main body 100 has a drive unit 40 for moving the head 101 relative to the body portion 103. The drive unit 40 has a twisting motor 41 and a vertical movement motor 42. The twisting motor 41 is a servo motor that rotates the head 101 and the connecting portion 102 within a predetermined angle range about a first rotation axis 401 extending in the extending direction of the connecting portion 102. By the operation of the twisting motor 41, the movement of the robot 1 twisting its neck is realized. The vertical movement motor 42 is a servo motor that rotates the head 101 within a predetermined angle range about a second rotation axis 402 perpendicular to the first rotation axis 401. By the vertical movement motor 42, the movement of the robot 1 moving its neck up and down is realized. The direction of the vertical movement of the neck can also be a direction inclined with respect to the vertical direction depending on the angle of the neck twist by the twisting motor 41. By finely and periodically operating the twisting motor 41 and / or the vertical movement motor 42, the movement of the robot 1 swaying or shaking its neck is realized. By appropriately changing and combining the timing, magnitude, and speed of the operations of the twisting motor 41 and the vertical movement motor 42, various mannerisms can be made the robot 1 perform.
[0012] The main body 100 includes a touch sensor 51, an acceleration sensor 52, a gyro sensor 53, an illuminance sensor 54, a microphone 55, and a sound output unit 30. The touch sensor 51 is provided on the upper parts of the head 101 and the body part 103 respectively. The illuminance sensor 54, the microphone 55, and the sound output unit 30 are provided on the upper part of the body part 103. The acceleration sensor 52 and the gyro sensor 53 are provided on the lower part of the body part 103.
[0013] Figure 3 is a block diagram showing the functional configuration of the robot 1. Each functional configuration shown in Figure 3 is provided in the main body 100. The robot 1 includes a CPU 11 (Central Processing Unit), a RAM 12 (Random Access Memory), a storage unit 13, an operation unit 20, a sound output unit 30, a drive unit 40, a sensor unit 50, a communication unit 60, and a power supply unit 70. Each part of the robot 1 is connected via a communication path such as a bus. The CPU 11, the RAM 12, and the storage unit 13 constitute a robot control device 10 that controls the operation of the robot 1.
[0014] The CPU 11 is a processor (control unit, control means) that reads and executes the program 131 stored in the storage unit 13 and performs various arithmetic processes to control the operation of the robot 1. Note that the robot 1 may have a plurality of processors (for example, a plurality of CPUs), and the plurality of processes executed by the CPU 11 in the present embodiment may be executed by the plurality of processors. In this case, the control unit is constituted by the plurality of processors. In this case, the plurality of processors may be involved in common processes, or the plurality of processors may independently execute different processes in parallel. The RAM 12 provides a working memory space for the CPU 11 and stores temporary data.
[0015] The storage unit 13 is a non-temporary recording medium readable by the CPU 11 as a computer, and stores the program 131 and various data. The storage unit 13 includes a non-volatile memory such as a flash memory, for example. The program 131 is stored in the storage unit 13 in the form of program code readable by a computer. Examples of the data stored in the storage unit 13 include gesture setting data 132 (operation setting information) and evaluation value data 133, etc., which are referred to in the gesture execution process described later.
[0016] The operation unit 20 includes operation buttons and operation knobs for turning the power on and off, adjusting the volume of the output sound by the sound output unit 30, etc. The operation unit 20 outputs operation information corresponding to input operations on the operation buttons and operation knobs, etc. to the CPU 11.
[0017] The sound output unit 30 includes a speaker and outputs sound with a pitch (height), length, and volume corresponding to the control signal and sound data transmitted from the CPU 11. The sound may be a sound imitating the cry of a living thing.
[0018] The drive unit 40 operates the above-described torsion motor 41 and vertical movement motor 42 according to the control signal transmitted from the CPU 11.
[0019] The sensor unit 50 includes the above-described touch sensor 51, acceleration sensor 52, gyro sensor 53, illuminance sensor 54, and microphone 55, and outputs the detection results by each sensor and microphone 55 to the CPU 11. The touch sensor 51, acceleration sensor 52, gyro sensor 53, illuminance sensor 54, and microphone 55 correspond to "sensors that detect the action from the outside". The touch sensor 51 detects that the user or another object has come into contact with the robot 1. The touch sensor 51 includes, for example, a pressure sensor or a capacitance sensor. The CPU 11 determines whether or not contact has occurred between the robot 1 and the user based on the detection result transmitted from the touch sensor 51. The acceleration sensor 52 detects the acceleration in each of the three orthogonal axis directions. The gyro sensor 53 detects the angular velocity around each of the three orthogonal axis directions. The illuminance sensor 54 detects the brightness around the robot 1. The microphone 55 detects the sound around the robot 1 and outputs the detected sound data to the CPU 11.
[0020] The communication unit 60 is a communication module having an antenna, a modulation / demodulation circuit, a signal processing circuit, etc., and performs wireless data communication with an external device according to a predetermined communication standard.
[0021] The power supply unit 70 includes a battery 71 and a remaining amount detection unit 72. The battery 71 supplies power to each part of the robot 1. The battery 71 of the present embodiment is a secondary battery that can be repeatedly charged by a non-contact charging method. The remaining amount detection unit 72 detects the remaining battery amount of the battery 71 according to a control signal transmitted from the CPU 11 and outputs the detection result to the CPU 11.
[0022] Next, the operation of the robot 1 will be described. FIG. 4 is a diagram schematically showing the transition of the operation state of the robot 1. The transition of the operation state of the robot 1 is performed according to the control by the CPU 11. In the standby state (step S1), the robot 1 is stationary without performing any gestures.
[0023] When a predetermined external action (stimulus) is detected in the standby state (i.e., "YES" in step S2), the CPU 11 causes the robot 1 to perform one of a plurality of predetermined gestures at a timing that appears to respond to the action (step S3). The external action may be, for example, a touch, a hug, or a conversation by the user. The touch is detected by the touch sensor 51, the hug is detected by at least one of the touch sensor 51, the acceleration sensor 52, and the gyro sensor 53, and the conversation is detected by the microphone 55. The gestures performed in response to the external action include not only gestures according to the internal parameters such as the emotion, personality, and sleepiness of the robot 1, but also gestures that reflect the history of interaction with the user (hereinafter referred to as history-reflecting gestures X1 to X4). The internal parameters are stored in the storage unit 13 and are updated as needed according to the environment of the robot 1 and external actions. The method for generating and updating the history-reflecting gestures X1 to X4 will be described later. When any of the gestures is completed, the CPU 11 transitions the robot 1 to the standby state.
[0024] In the standby state, when no predetermined external action has been detected and a predetermined gesture execution condition is satisfied (i.e., "YES" in step S4), the CPU 11 causes the robot 1 to perform one of a plurality of predetermined gestures as a gesture to be performed spontaneously (step S5). The gesture execution condition may be, for example, that a predetermined time has elapsed since the previous gesture was performed, the ambient brightness is a predetermined level, it is a predetermined time, the remaining battery level of the battery 71 is less than a predetermined value, it is estimated from the detection result of the sensor unit 50 that the user is nearby, or a combination thereof. The gestures to be performed spontaneously include not only tremor gestures, breathing gestures, randomly determined gestures, etc., but also gestures that reflect the history of interaction with the user (hereinafter referred to as history-reflecting gestures Y1 to Y4). The method for generating and updating the history-reflecting gestures Y1 to Y4 will be described later. When any of the gestures is completed, the CPU 11 transitions the robot 1 to the standby state.
[0025] Each gesture performed by the robot 1 is performed according to the gesture pattern 9 (operation pattern) shown in FIG. 5. The gesture pattern 9 corresponding to all the gestures performed by the robot 1 is stored in the gesture setting data 132 of the storage unit 13. Each gesture pattern 9 consists of a combination (array) of two or more operation elements. In the present embodiment, a case where the gesture pattern 9 consists of a combination of six operation elements 91 to 96 will be described as an example. The operation elements 91 to 96 are each represented by a boolean value ("0" or "1"). Therefore, there are 2 to the power of 6, that is, 64 combinations in the gesture pattern 9.
[0026] FIG. 6 is a diagram showing the contents of operation elements 91 to 96. The operation elements 91 to 96 each represent an operation of a certain part of the robot 1. The operation element 91 represents the vertical position of the head by the vertical movement motor 42. When the value of the operation element 91 is "0", it represents performing an operation of lowering the head, and when the value is "1", it represents performing an operation of raising the head. The operation element 92 represents the presence or absence of vertical shaking of the head by the vertical movement motor 42. When the value of the operation element 92 is "0", it represents performing an operation of shaking the head vertically, and when the value is "1", it represents not performing an operation of shaking the head vertically. The operation element 93 represents the presence or absence of swinging of the head by the twisting motor 41 and / or the vertical movement motor 42. When the value of the operation element 93 is "0", it represents performing an operation of swinging the head, and when the value is "1", it represents not performing an operation of swinging the head. The operation element 94 represents the speed of the motion of the head by the twisting motor 41 and / or the vertical movement motor 42. When the value of the operation element 94 is "0", it represents moving the head at a fast motion speed, and when the value is "1", it represents moving the head at a slow motion speed. The operation element 95 represents the pitch of the cry output by the sound output unit 30. When the value of the operation element 95 is "0", it represents outputting a cry with a high pitch, and when the value is "1", it represents outputting a cry with a low pitch. The operation element 96 represents the presence or absence and length of the intonation of the cry output by the sound output unit 30. When the value of the operation element 96 is "0", it represents outputting a cry with intonation and a long length, and when the value is "1", it represents outputting a cry without intonation and a short length. The operation elements 91 to 93 correspond to "the presence or absence of movement of a predetermined part", the operation element 94 corresponds to "the speed of movement of the part", the operation element 95 corresponds to "the height of the pitch of the sound output", and the operation element 96 corresponds to "the length of the sound output".
[0027] In step S3 or S5 of FIG. 4, the CPU 11 selects the movement pattern 9 of the action to be executed, and operates the drive unit 40 and the sound output unit 30 so that each part of the robot 1 performs movements according to the movement elements 91 to 96 of the selected movement pattern 9. For example, when the movement pattern 9 shown in FIG. 5 is selected, since the movement elements 91 to 96 are "0", "1", "1", "1", "1", "0" respectively, the CPU 11 lowers the head at a slow motion speed without performing vertical oscillation and swinging of the head, and causes the robot 1 to perform an operation of outputting a long chirping sound with a low pitch and intonation. In this specification, the operation performed by the robot 1 according to the movement pattern 9 is referred to as "movement pattern".
[0028] Next, the generation methods of the history-reflecting movement patterns X1 to X4 and the history-reflecting movement patterns Y1 to Y4 will be described. Hereinafter, the generation methods of the history-reflecting movement patterns Y1 to Y4 that are spontaneously performed will be described.
[0029] As shown in FIG. 7, at the time of initialization of the robot 1, the movement patterns 9A to 9D of the movement patterns A to D in the first period are determined and stored in the movement pattern setting data 132. The four movement patterns 9A to 9D in the first period constitute the movement pattern group g1 (operation pattern group) in the first period. The movement patterns 9A to 9D of the movement patterns A to D in the first period are determined such that the movement elements 91 to 96 are random. The movement patterns A to D correspond to the history-reflecting movement patterns Y1 to Y4 respectively. The initialization of the robot 1 is executed when the robot 1 is first started from the factory shipment state, or when a predetermined initialization command is given to the operation unit 20 by the user. Here, the "period" is a period in the growth process of a single robot 1, and can also be referred to as the "growth period" of the robot 1 or the "evaluation period" of the movement pattern of the robot 1.
[0030] According to the history of the interaction between the user and the robot 1 after the gestures A to D are executed, based on the gesture patterns 9A to 9D of the gestures A to D in the first period, the gesture patterns 9E to 9H of the gestures E to H in the second period (the next period) are generated (see FIG. 10). That is, although omitted in FIG. 4, after any one of the history-reflecting gestures Y1 to Y4 is executed in step S5, a process of generating the history-reflecting gestures Y1 to Y4 in the next period may be entered. The gestures E to H in the next period also correspond to the history-reflecting gestures Y1 to Y4, respectively. The gesture patterns 9A to 9D of the gestures A to D are overwritten and updated by the gesture patterns 9E to 9H of the gestures E to H. A part of the gesture patterns 9A to 9D of the gestures A to D in the first period is carried over to the gesture patterns 9E to 9H of the gestures E to H in the second period. Similarly, based on the gesture patterns 9E to 9H of the gestures E to H in the second period, the gesture patterns 9I to 9L of the gestures I to L in the third period are generated, and the gesture patterns 9I to 9L of the gestures I to L overwrite and update the gesture patterns 9E to 9H of the gestures E to H. Thereafter, the update of the gesture period continues. The gesture setting data 132 stores a gesture pattern group g composed of four gesture patterns 9 for each period. In this way, according to the history of the interaction between the user and the robot 1, the robot 1 learns the gestures by unsupervised learning, and the update of the gesture period is performed. Since a part of the gesture pattern 9 is carried over when the gesture period is updated, it can also be regarded as analogous to the gene (DNA) of a living organism. Also, the operation elements 91 to 96 can be regarded as analogous to the bases constituting the base sequence of a gene. Therefore, the gesture pattern 9 may be rephrased as a gesture gene.
[0031] Hereinafter, a method of generating the gesture patterns 9E to 9H of the gestures E to H in the second period based on the gesture patterns 9A to 9D of the gestures A to D in the first period will be described. In step S5 of FIG. 4, when any one of the history-reflecting gestures Y1 to Y4, that is, any one of the gestures A to D in the first period, is executed, the CPU 11 derives an evaluation value of the gesture pattern 9 corresponding to the executed gesture based on the detection result by the touch sensor 51 after the execution of the gesture. The evaluation value may also be referred to as a reward. In the present embodiment, the evaluation value V of the gesture is derived by the following formula (1). V = To - Tu (1) Here, To is a predetermined timeout time. To is set in advance and stored in the storage unit 13, and may be, for example, about ten seconds to several tens of seconds. Tu is the time from when the gesture is executed until contact with the user occurs. Specifically, Tu is the elapsed time from the timing when the CPU 11 starts the operation related to the gesture by the driving unit 40 and the sound output unit 30 to the timing when the detection result corresponding to the user's contact is output by the touch sensor 51. Therefore, the shorter the time from when the gesture is executed until the user touches the robot 1, the higher the evaluation value of the gesture pattern 9 corresponding to the gesture. Also, if To elapses without the user touching the robot 1 after the gesture is executed, the evaluation value of the gesture pattern 9 corresponding to the gesture becomes 0. The derived evaluation value is stored in the evaluation value data 133. Thus, in the present embodiment, as the contact reflected in the evaluation value, contact (touch) by the user is used, but it is not limited to this, and the contact may include hugging, calling, etc. For example, when a change of a certain amount or more occurs in the detection value by the acceleration sensor 52 and / or the gyro sensor 53, it may be determined that a hug as contact has occurred. Also, when voice is detected by the microphone 55, it may be determined that a call as contact has occurred.
[0032] Based on the gesture setting data 132 in FIG. 7, the CPU 11 causes the gestures A to D to be executed one by one in order every time step S5 in FIG. 4 is executed. Other gestures (such as the shaking gesture in FIG. 4) may be sandwiched between gestures A to D. When gestures A to D are executed once each, as shown in FIG. 8, the evaluation values of the respective gesture patterns 9 are stored in the evaluation value data 133. Here, it is assumed that the evaluation values of the gesture patterns 9A to 9D are "0", "30", "10", and "5" respectively. When the evaluation values of the respective gesture patterns 9 are stored, a gesture learning process for learning the gestures in the next period is started. Note that gestures A to D may be executed a plurality of times and the same number of times, and the cumulative value of the evaluation values for each time may be used.
[0033] FIG. 9 is a diagram for explaining a method of generating gesture E in the second period based on gestures A to D in the first period. The CPU 11 first selects two gestures from the four gesture patterns 9A to 9D based on the evaluation values in the evaluation value data 133. In FIG. 9, gesture patterns 9B and 9C are selected. The selection method of the gesture pattern 9 may be, for example, a selection method such that among the gesture patterns 9A to 9D, the gesture pattern 9 with a higher evaluation value is selected with a higher probability. For example, it may be a method of selecting in order from the gesture pattern 9 with a higher evaluation value with probabilities of 50%, 30%, 15%, and 5% respectively, and repeating the selection with the above probabilities until two different gesture patterns 9 are selected. Also, it may be a selection method of selecting two gesture patterns 9 in order from the operation with the highest evaluation value among the four gesture patterns 9A to 9D. In this case, in the example of the evaluation value shown in FIG. 8, gesture patterns 9B and 9C are always selected. Alternatively, two gesture patterns 9 may be selected by a tournament method. That is, it may be a method of dividing the four gesture patterns 9A to 9D into two groups and selecting the gesture pattern 9 with a higher evaluation value in each group.
[0034] As shown in the upper right of FIG. 9, when two gesture patterns 9B and 9C are selected, the CPU 11 generates a gesture pattern 9E of the gesture E in the second period by extracting and combining at least one operation element from each of the selected gesture patterns 9B and 9C. Specifically, for each of the operation elements 91 to 96, the CPU 11 extracts the operation element of one of the two gesture patterns 9B and 9C selected with a probability of 50%. In the example shown in FIG. 9, the operation elements 91, 94, and 95 are extracted from the gesture pattern 9B of the gesture B, and the operation elements 92, 93, and 96 are extracted from the gesture pattern 9C of the gesture C. By combining and integrating these extracted operation elements 91 to 96, the gesture pattern 9E of the gesture E shown in the lower part of FIG. 9 is generated. The process of generating one gesture pattern 9 in the next period from two gesture patterns 9 in a certain period corresponds to crossing gesture genes. Instead of the method of extracting one of the operation elements from two gesture patterns 9 with a probability of 50%, the probabilities of extraction from each gesture pattern 9 may be made different. For example, the probability of extracting an operation element from a gesture pattern 9 with a higher evaluation value may be increased.
[0035] In the same way as the gesture E, gesture patterns 9F to 9H of the gestures F to H in the second period are generated. FIG. 10 is a diagram showing an example of the gesture patterns 9E to 9H that constitute the gesture pattern group g2 in the second period. The gesture patterns 9A to 9D of the gesture setting data 132 shown in FIG. 7 are overwritten and updated by the gesture patterns 9E to 9H shown in FIG. 10. The gesture pattern 9F is generated from the gesture patterns 9B and 9D in the first period, the gesture pattern 9G is generated from the gesture patterns 9B and 9C, and the gesture pattern 9H is generated from the gesture patterns 9C and 9D. Thereafter, at the timing when step S5 in FIG. 4 is executed, the gestures E to H in the second period are executed as the history-reflecting gestures Y1 to Y4. Among the gesture patterns 9E to 9H in the second period, the gesture patterns 9F to 9H generated after the second one may be generated based on the gesture patterns (such as the gesture pattern 9E) in the second period generated before, or these and the gesture patterns 9A to 9D in the first period.
[0036] By repeating the update of the gesture period in the above method, while inheriting the characteristics of the gesture pattern 9 with a high evaluation value, that is, the gesture pattern 9 that is likely to generate interaction with the user (the gesture pattern 9 preferred by the user), the gesture pattern 9 of the gestures performed by the robot 1 changes. As a result, the robot 1 can be made to perform gestures like a living thing. As the period update progresses, two or more of the four gesture patterns 9 may become the same gesture pattern 9. This is called the convergence of gestures or the convergence of the gesture pattern 9. According to the above period update method, the history-reflecting gestures Y1 to Y4 converge to the gestures preferred by the user. The period (number of days) until the convergence of the gesture pattern 9 can be adjusted by changing the number of action elements included in one gesture pattern 9 and / or the number of gesture patterns 9 included in the gesture pattern group g in one period. The more action elements the gesture pattern 9 has, the more gesture patterns there are, and the longer the period until convergence. Also, the more gesture patterns 9 are included in the gesture pattern group g in one period, the more gesture patterns there are, and the longer the period until convergence. As described with reference to FIG. 4, since the robot 1 also performs gestures other than the history-reflecting gestures X1 to X4 and Y1 to Y4, the total number of gestures performed by the robot 1 does not significantly decrease even after the gesture pattern 9 converges. Also, when there is little interaction between the robot 1 and the user, it is difficult for the evaluation values of some of the gesture patterns 9 to become high, so the gesture pattern 9 is less likely to converge. In other words, an unused state or a state close to it is maintained.
[0037] When all of the gestures corresponding to the four gesture patterns 9 for a certain period are gestures that the user does not like, etc., the evaluation values of the four gesture patterns 9 may all become low. If the update of the period proceeds from this state, the gesture pattern 9 that the user does not like may converge. For this reason, in the present embodiment, when the total value of the evaluation values of the gesture patterns 9 for a certain period is less than or equal to a reference value, as shown in FIG. 11, the values of the operation elements 91 to 96 of at least one gesture pattern 9 constituting the generated gesture pattern group g for the next period are inverted. In the example shown in FIG. 11, the operation elements 91 to 96 of gesture E are inverted from "0, 1, 0, 1, 1, 0" to "1, 0, 1, 0, 0, 1". This process can be regarded as a mutation of a living thing. By this mutation, it is possible to prevent the learning of the gesture pattern 9 from converging in a state where the evaluation value is low. The above reference value may be, for example, 10% or less of the maximum value that the total value of the evaluation values can take. Alternatively, the reference value may be set to "0", and a mutation may be caused when the evaluation values of all the gesture patterns 9 are "0".
[0038] As described above, the method of generating and updating the history-reflecting gestures Y1 to Y4 has been explained. The history-reflecting gestures X1 to X4 that are executed in response to an external action are also generated and updated by the same method. The history-reflecting gestures X1 to X4 and the history-reflecting gestures Y1 to Y4 are generated and updated separately and independently. For this purpose, in the gesture setting data 132, the gesture pattern group gx of the history-reflecting gestures X1 to X4 and the gesture pattern group gy of the history-reflecting gestures Y1 to Y4 are stored separately. Also, in the evaluation value data 133, the evaluation values of the gesture patterns 9 of the history-reflecting gestures X1 to X4 and the evaluation values of the gesture patterns 9 of the history-reflecting gestures Y1 to Y4 are stored separately.
[0039] Next, the gesture execution process executed by the CPU 11 to realize the above-described operation will be described. FIG. 12 is a flowchart showing the control procedure of the gesture execution process. The gesture execution process is started when the power of the robot 1 is turned on.
[0040] When the gesture execution process starts, the CPU 11 determines whether it is the first startup after the factory shipment of the robot 1 (step S101). If it is determined that it is the first startup ( "YES" in step S101), the CPU 11 initializes each gesture pattern 9 in the gesture pattern group g stored in the gesture setting data 132. That is, the CPU 11 sets the operation elements 91 to 96 of each gesture pattern 9 to random values. The CPU 11 substitutes "1" into the variable N representing the number of gesture periods (step S103).
[0041] When step S103 ends, or when it is determined in step S101 that it is not the first startup ( "NO" in step S101), the CPU 11 repeatedly determines whether it is the gesture execution timing (step S104). When it is determined that it is the gesture execution timing ( "YES" in step S104), the CPU 11 selects one gesture and causes the robot 1 to execute it (step S105). Specifically, the CPU 11 selects a gesture pattern 9 of one gesture from the gesture setting data 132, and operates the drive unit 40 and the sound output unit 30 according to the operation elements 91 to 96 of the selected gesture pattern 9, thereby causing the robot 1 to perform the gesture. Branching to "YES" in step S104 corresponds to branching to "YES" in step S2 or S4 in FIG. 4. Also, step S105 corresponds to step S3 or S5 in FIG. 4.
[0042] After the execution of the gesture, the CPU 11 determines whether or not there has been contact between the user and the robot 1 before the timeout time To elapses (step S106). Here, when contact is detected by the touch sensor 51, the CPU 11 determines that contact has occurred. If it is determined that contact has occurred before the timeout time To elapses ( "YES" in step S106), the CPU 11 derives an evaluation value corresponding to the elapsed time from the start of the execution of the gesture to the occurrence of contact according to the above formula (1) and records it in the evaluation value data 133 (step S107). If it is determined that no contact has occurred before the timeout time To elapses ( "NO" in step S106), the CPU 11 records the evaluation value "0" in the evaluation value data 133 (step S108). When step S107 or S108 ends, the CPU 11 determines whether or not evaluation values have been recorded for all gesture patterns 9 in the Nth period (step S109). If the CPU 11 determines that the evaluation value has not been recorded for any of the gesture patterns 9 ( "NO" in step S109), the process returns to step S104. If it is determined that the evaluation values have been recorded for all gesture patterns 9 ( "YES" in step S109), the gesture learning process is executed (step S110).
[0043] FIG. 13 is a flowchart showing the control procedure of the gesture learning process. When the gesture learning process is called, the CPU 11 assigns "1" to a variable n representing the ordinal number of the gesture pattern 9 that constitutes the gesture pattern group g for one period (step S201). The CPU 11 selects two gesture patterns 9 from the gesture pattern group gN for the Nth period based on the evaluation value (step S202). The CPU 11 assigns "1" to a variable m representing the ordinal numbers of the operation elements 91 to 96 in the gesture pattern 9 (step S203). For the mth operation element, the CPU 11 extracts the operation element of one of the two gesture patterns 9 determined with a 50% probability from the two gesture patterns 9 selected in step S202 (step S204). The CPU 11 determines whether the variable m is equal to "6", which is the maximum number of operation elements (step S205). If it is determined that the variable m is 5 or less ( "NO" in step S205), the CPU 11 assigns "m + 1" to the variable m (step S206) and returns the process to step S203.
[0044] If it is determined that the variable m is 6 ( "YES" in step S206), the CPU 11 combines the six operation elements extracted in the loop process of steps S203 to S206 to generate the nth gesture pattern 9 (step S207). The CPU 11 determines whether the variable n is equal to "4", which is the maximum number of gesture patterns 9 for one period (step S208). If it is determined that the variable n is 3 or less ( "NO" in step S208), the CPU 11 assigns "n + 1" to the variable n (step S209) and returns the process to step S202. If it is determined that the variable n is 4 ( "YES" in step S208), the CPU 11 overwrites and updates the four gesture patterns 9 generated in the loop process of steps S202 to S209 with the existing gesture patterns 9 in the gesture setting data 132 (step S210).
[0045] The CPU 11 determines whether the total value of the evaluation values in the evaluation value data 133 is less than or equal to the reference value (step S211). If it is determined that the total value of the evaluation values is less than or equal to the reference value ( "YES" in step S211), the CPU 11 randomly selects one gesture pattern 9, reverses the operation elements 91 to 96 as shown in FIG. 11, and updates the gesture setting data 132 so as to have the content after the reversal (step S212). When step S212 ends, or if it is determined that the total value of the evaluation values is greater than the reference value ( "NO" in step S211), the CPU 11 ends the gesture learning process and returns the process to the gesture execution process.
[0046] When the gesture learning process in step S110 of FIG. 12 ends, the CPU 11 substitutes "N + 1" for the variable N (step S111). The CPU 11 determines whether an operation to turn off the power of the robot 1 has been performed (step S112). If the CPU 11 determines that the operation has not been performed ( "NO" in step S112), the process returns to step S104. If it is determined that the operation has been performed ( "YES" in step S112), the gesture execution process ends. Note that when a predetermined initialization command is issued by the user during the gesture execution process, the process may be shifted to step S102.
[0047] As described above, the robot control device 10 according to the present embodiment includes a CPU 11 that causes the robot 1 to perform mannerisms according to a plurality of mannerism patterns 9 composed of combinations of operation elements 91 to 96 in response to the actions detected by the sensor unit 50. The CPU 11 derives an evaluation value for each of the plurality of mannerism patterns 9, and generates a new mannerism pattern 9 by combining the plurality of operation elements 91 to 96 that make up each of the plurality of mannerism patterns 9 based on the evaluation value. As a result, the mannerisms performed by the robot 1 can be changed, and the robot 1 can be made to perform mannerisms similar to those of a living being. In addition, since the characteristics of the mannerism pattern 9 with a high evaluation value according to the interaction between the user and the robot 1 are carried over to the mannerisms in the next period, it can be made to appear as if the robot 1 is learning the situation of the interaction with the user and changing its mannerisms. Therefore, an AI pet that grows according to the interaction with the user can be expressed. In addition, since the mannerisms that converge due to the update of the period differ depending on the user, the robot 1 can be grown into a robot with different personalities for each user.
[0048] Further, the CPU 11 derives an evaluation value for each of the plurality of mannerism patterns 9 based on the detection results by the sensor unit 50 after the performance of the mannerisms according to the plurality of mannerism patterns 9. Thereby, the evaluation of each mannerism pattern 9 can be appropriately derived based on the presence or absence of an action from the user or the like.
[0049] Further, the CPU 11 selects at least two mannerism patterns 9 from the plurality of mannerism patterns 9 so that the mannerism patterns 9 with higher evaluation values are selected with a higher probability, and generates a new mannerism pattern 9 by combining the plurality of operation elements 91 to 96 that make up each of the selected two mannerism patterns 9. As a result, the operation elements of the mannerism pattern 9 with a high evaluation value are more likely to be carried over to the mannerism pattern 9 in the next period. Therefore, the robot 1 can be made to learn to perform the mannerisms preferred by the user.
[0050] Further, the CPU 11 may select at least two gestures in order from the gesture patterns 9 with high evaluation values among the plurality of gesture patterns 9, and generate a new gesture pattern 9 by combining the plurality of operation elements 91 to 96 constituting each of the two selected gesture patterns 9. As a result, the operation elements of the gesture pattern 9 with a high evaluation value are more likely to be carried over to the gesture pattern 9 in the next period.
[0051] Further, the CPU 11 selects two gesture patterns 9 from the plurality of gesture patterns 9 based on the evaluation value, and combines the operation elements of one of the two gesture patterns 9 selected with a predetermined probability for each operation element to generate a new gesture pattern 9. Thereby, a gesture that is moderately different from the gesture in the current period can be generated with a simple process.
[0052] In addition, each of the operation elements 91 to 96 constituting the gesture pattern 9 is represented by a boolean value. As a result, the operation element can be determined by a simple process of selecting any one of the boolean values. Therefore, the load on the CPU 11 that performs the gesture learning process can be reduced.
[0053] Further, the CPU 11 generates a plurality of new gesture patterns 9 by combining the plurality of operation elements 91 to 96 constituting each of the plurality of gesture patterns 9 based on the evaluation value, and when the total value of the evaluation values of the plurality of gesture patterns 9 is equal to or less than a reference value, at least one of the plurality of generated new gesture patterns 9 is used. The values of the operation elements 91 to 96 of the gesture pattern 9 are inverted. Thereby, it is possible to prevent the learning of the gesture pattern 9 from converging in a state where the evaluation value is low. Therefore, it is possible to prevent the learning of the gesture pattern 9 from converging when there is little interaction with the user or the like.
[0054] Further, based on the detection results by the sensor unit 50, the CPU 11 detects that the user has touched the robot 1, and derives an evaluation value such that the shorter the time from when the robot 1 makes a gesture until the sensor unit 50 detects the contact, the larger the evaluation value of the gesture pattern 9 corresponding to the gesture. Thereby, the characteristics of the gesture that are likely to lead to contact with the user can be passed on to the gesture in the next period.
[0055] Further, the two or more motion elements 91 to 96 constituting the gesture pattern 9 include at least one of the presence or absence of movement of a predetermined part of the robot 1, the speed of movement of the part, the pitch of the sound output, and the length of the sound output. Thereby, in a simple way of varying the combination of the motion elements 91 to 96, the robot 1 can be made to perform gestures in which the movement of the part and the sound output are different from each other.
[0056] Further, the robot 1 according to the present embodiment includes a robot control device 10 and a sensor unit 50. Thereby, the robot 1 that performs lifelike gestures can be realized.
[0057] Further, the control method of the robot 1 according to the present embodiment derives an evaluation value for each of a plurality of gesture patterns 9, and generates a new gesture pattern 9 by combining a plurality of motion elements constituting each of the plurality of gesture patterns 9 based on the evaluation value. Thereby, the robot 1 can be made to perform lifelike gestures.
[0058] Further, the program 131 according to the present embodiment causes the CPU 11 of the robot control device 10 to function as a control means. The control means derives an evaluation value for each of a plurality of gesture patterns 9, and generates a new gesture pattern 9 by combining a plurality of motion elements constituting each of the plurality of gesture patterns 9 based on the evaluation value. Thereby, the robot 1 can be made to perform lifelike gestures.
[0059] Note that the present invention is not limited to the above-described embodiments, and various modifications are possible. For example, the content of the gesture pattern 9 as an operation pattern is not limited to that exemplified in the above embodiment. For example, the number of operation elements constituting the gesture pattern 9 is not limited to six, and may be any number of two or more. Also, the content of each operation element can be appropriately changed according to the configuration of the robot 1. For example, when the robot 1 is provided with hands and feet, operation elements representing the movement of the hands and the movement of the feet may be provided. Also, when the robot 1 is provided with a light-emitting unit or a display, operation elements representing the light-emitting mode of the light-emitting unit and the display content of the display may be provided.
[0060] Also, the number (n) of gestures in one period is not limited to four, and may be any number of two or more. Also, although the gesture pattern 9 for the next period was generated from two gesture patterns 9 for a certain period, instead of this, the gesture pattern 9 for the next period may be generated from three or more and less than n gesture patterns 9 for a certain period.
[0061] Also, in the above embodiment, the shorter the time until the user touches the robot 1 after the execution of the gesture, the higher the evaluation value of the gesture was set, but the method for deriving the evaluation value is not limited to this. For example, it may be a method of deriving a higher evaluation value of the gesture as the cumulative time that the user has touched the robot 1 is longer during a predetermined period after the execution of the gesture. Alternatively, the evaluation value may be derived based on the timing, length, and loudness of the calls made by the user to the robot 1 during a predetermined period after the execution of the gesture. Also, two or more of these derivation methods may be combined. Also, the cumulative value, average value, median value (for example, the number of touches, etc., the cumulative value, average value, median value of a plurality of types of operations from the user) of the operations from the user during a predetermined period may be used as the evaluation value.
[0062] In the above-described embodiment, when the total value of the evaluation values of the gestures for a certain period is less than or equal to the reference value, at least one gesture pattern 9 for the next period is inverted. However, regardless of the total value of the evaluation values, at least one gesture pattern 9 for the next period may be inverted at a predetermined timing. This can prevent the user from getting bored and can also respond to changes in the user's preferences.
[0063] Also, the operation elements are not limited to boolean values and may be able to take three or more different values.
[0064] Also, the configuration of the robot 1 is not limited to that illustrated in FIGS. 1 to 3. For example, it may be a robot modeled after a real living creature such as a human, an animal, a bird, or a fish, a robot modeled after an extinct living creature such as a dinosaur, or a robot modeled after a fictional living creature.
[0065] In the above-described embodiment, an example in which the robot control device 10 that controls the robot 1 is provided inside the robot 1 has been described. However, the present invention is not limited to this, and the robot 1 may be controlled and operated by a robot control device provided outside the robot 1. The external robot control device may be, for example, a smartphone, a tablet terminal, or a notebook PC. In this case, the robot 1 operates according to a control signal received from the external robot control device via the communication unit 60. The external robot control device executes the functions that the robot control device 10 in the above-described embodiment has executed.
[0066] In the above description, an example in which the flash memory of the storage unit 13 is used as the computer-readable medium for the program according to the present invention has been disclosed. However, the present invention is not limited to this example. As other computer-readable media, information recording media such as HDD (Hard Disk Drive), SSD (Solid State Drive), and CD-ROM can be applied. Also, as a medium for providing the data of the program according to the present invention via a communication line, a carrier wave is also applied to the present invention.
[0067] Furthermore, regarding the detailed configurations and detailed operations of the respective components of the robot 1 in the above-described embodiment, it goes without saying that they can be appropriately changed without departing from the gist of the present invention.
[0068] Although the embodiments of the present invention have been described, the scope of the present invention is not limited to the above-described embodiments, and includes the scope of the invention described in the claims and the equivalent scope thereof.
Explanation of Reference Numerals
[0069] 1... Robot, 10... Robot control device, 11... CPU 11 (control unit, control means), 132... Gesture setting data (operation setting information), 50... Sensor unit (sensor), 9, 9A to 9H... Gesture patterns (operation patterns), 91 to 96... Operation elements, A to H... Gestures (operations), g... Gesture pattern group (operation pattern group)
Claims
1. A robot control device for controlling a robot equipped with a sensor for detecting an external action, comprising a control unit that causes the robot to perform operations according to a plurality of operation patterns each consisting of a combination of two or more operation elements in response to the action detected by the sensor, wherein the control unit derives an evaluation value for each of the plurality of operation patterns, and generates a new operation pattern by combining a plurality of operation elements constituting each of the plurality of operation patterns based on the evaluation value, a robot control device.
2. The control unit derives an evaluation value for each of the plurality of operation patterns based on the detection result by the sensor after the execution of the operation according to the plurality of operation patterns, The robot control device according to claim 1.
3. The control unit selects at least two operation patterns from the plurality of operation patterns so that the operation patterns with higher evaluation values are selected with higher probabilities, and generates the new operation pattern by combining a plurality of operation elements constituting each of the two selected operation patterns, The robot control device according to claim 1.
4. The control unit sequentially selects at least two operation patterns from the plurality of operation patterns with higher evaluation values, and generates the new operation pattern by combining a plurality of operation elements constituting each of the two selected operation patterns, The robot control device according to claim 1.
5. The control unit selects two operation patterns from the plurality of operation patterns based on the evaluation value, and for each operation element, combines the operation elements of one of the two operation patterns selected with a predetermined probability to generate the new operation pattern, The robot control device according to claim 1.
6. Each operation element constituting the operation pattern is represented by a boolean value, The robot control device according to claim 1.
7. The control unit generates a plurality of the new operation patterns by combining a plurality of operation elements constituting each of the plurality of operation patterns based on the evaluation value, and when the total value of the evaluation values of the plurality of operation patterns is less than or equal to a reference value, inverts the value of each operation element of at least one operation pattern among the plurality of new operation patterns, The robot control device according to claim 6.
8. The control unit detects that the user has contacted the robot based on the detection result by the sensor, and derives the evaluation value such that the shorter the time from when the robot performs the operation until the sensor detects the contact, the larger the evaluation value of the operation pattern corresponding to the operation. The robot control device according to claim 1.
9. The two or more operation elements constituting the operation pattern include at least one of the presence or absence of movement of a predetermined part, the speed of movement of the part, the pitch of the output sound, and the length of the output sound. The robot control device according to claim 1.
10. The robot control device according to any one of claims 1 to 9, the sensor, and a robot comprising the same.
11. A method for controlling a robot provided with a sensor for detecting an external action, comprising: causing the robot to perform operations according to a plurality of operation patterns each consisting of a combination of two or more operation elements in response to the action detected by the sensor; deriving an evaluation value for each of the plurality of operation patterns; generating a new operation pattern by combining a plurality of operation elements constituting each of the plurality of operation patterns based on the evaluation value. A method for controlling a robot.
12. Causing a computer of a robot control device for controlling a robot provided with a sensor for detecting an external action to function as a control means, wherein the control means causes the robot to perform operations according to a plurality of operation patterns each consisting of a combination of two or more operation elements in response to the action detected by the sensor; derives an evaluation value for each of the plurality of operation patterns; generates a new operation pattern by combining a plurality of operation elements constituting each of the plurality of operation patterns based on the evaluation value. A program.
Citation Information
Patent Citations
Robot control device, robot control method, and program
JP2014069257A