Robot, control method and program
Patent Information
- Application Number
- JP2023109025
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-07-03
- Publication Date
- 2025-02-19
- Estimated Expiration
- 2041-03-16
AI Technical Summary
【0007】 本発明によれば、バッテリーの消費量をより抑制しやすくすることができる。
Smart Images

Figure 0007632527000001 
Figure 0007632527000002 
Figure 0007632527000003
Abstract
Description
[Technical field]
[0001] The present invention relates to Robot, Control This document relates to a method and program for controlling the same. [Background technology]
[0002] Some electronic devices have a sleep mode (pause mode) that stops some of the device's operations to reduce battery consumption. Triggers for releasing the sleep mode include direct device operation, and also external stimuli detected by a sensor in the device, such as brightness or vibration. For example, Patent Document 1 discloses a wireless mouse that is capable of extending battery life more than ever before by not releasing the sleep mode until vibration is detected. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 11-224158 Summary of the Invention [Problem to be solved by the invention]
[0004] In a device such as that disclosed in Patent Document 1, even a small external stimulus (such as a slight vibration) may cause the device to exit sleep mode and return to a normal state. Thus, in conventional technology, the sleep mode is easily exited, making it difficult to achieve the desired effect of reducing battery consumption.
[0005] The present invention has been made in view of the above circumstances, and is capable of making it easier to reduce battery consumption. Robot, Control The object of the present invention is to provide a method and program for controlling the same. [Means for solving the problem]
[0006] In order to achieve the above-mentioned object, the robot according to the present invention is a robot formed in a horizontally long, crawling shape, and includes a control means for switching an operating state between a normal state and a sleep state in which power consumption is suppressed more than in the normal state, and the control means switches the operating state from the normal state to the sleep state when brightness detected by a predetermined sensor becomes equal to or lower than a predetermined threshold. picture, The operating state Based on the brightness becoming equal to or lower than a predetermined threshold value, When switching from the normal state to the sleep state 、 When a predetermined condition is satisfied, including the head of the robot being above the torso of the robot in a vertical posture, 、 The essential condition for returning the operating state from the sleep state to the normal state includes detection of the vertical orientation. Set to hard sleep control mode, The operating state Based on the brightness becoming equal to or lower than a predetermined threshold value, When switching from the normal state to the sleep state When the setting condition for the hard sleep control mode is not satisfied and a predetermined sleep control mode different from the hard sleep control mode is set, Detecting that the vertical posture has been adopted or a predetermined detection different from the detection of the vertical posture, When the operating state is returned from the sleep state to the normal state, As a condition setting do, It is characterized by: A control method according to the present invention is a control method executed by a robot formed in a horizontally elongated crawling shape, and includes a control process for switching an operating state between a normal state and a sleep state in which power consumption is suppressed more than in the normal state, and the control process switches the operating state from the normal state to the sleep state based on the brightness detected by a predetermined sensor becoming equal to or lower than a predetermined threshold. picture, The operating state Based on the brightness becoming equal to or lower than a predetermined threshold value, When switching from the normal state to the sleep state 、 When a predetermined condition is satisfied, including the head of the robot being above the torso of the robot in a vertical posture, 、 The essential condition for returning the operating state from the sleep state to the normal state includes detection of the vertical orientation. Set to hard sleep control mode, The operating state Based on the brightness becoming equal to or lower than a predetermined threshold value, When switching from the normal state to the sleep state When the setting condition for the hard sleep control mode is not satisfied and a predetermined sleep control mode different from the hard sleep control mode is set,Detecting that the vertical posture has been adopted or a predetermined detection different from the detection of the vertical posture, When the operating state is returned from the sleep state to the normal state, As a condition setting do, It is characterized by: Further, the program according to the present invention causes a computer of a robot formed in a horizontally elongated crawling shape to function as a control means for switching an operating state between a normal state and a sleep state in which power consumption is suppressed more than in the normal state, and the control means switches the operating state from the normal state to the sleep state based on the brightness detected by a predetermined sensor becoming equal to or lower than a predetermined threshold. picture, The operating state Based on the brightness becoming equal to or lower than a predetermined threshold value, When switching from the normal state to the sleep state 、 When a predetermined condition is satisfied, including the head of the robot being above the torso of the robot in a vertical posture, 、 The essential condition for returning the operating state from the sleep state to the normal state includes detection of the vertical orientation. Set to hard sleep control mode, The operating state Based on the brightness becoming equal to or lower than a predetermined threshold value, When switching from the normal state to the sleep state When the setting condition for the hard sleep control mode is not satisfied and a predetermined sleep control mode different from the hard sleep control mode is set, Detecting that the vertical posture has been adopted or a predetermined detection different from the detection of the vertical posture, When the operating state is returned from the sleep state to the normal state, As a condition setting do, It is characterized by: Effect of the Invention
[0007] According to the present invention, it is possible to more easily suppress battery consumption. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram showing an external appearance of a robot according to an embodiment. [Diagram 2] 1 is a cross-sectional view of a robot according to an embodiment, as viewed from the side. [Diagram 3] FIG. 2 is a diagram illustrating a housing of a robot according to an embodiment. [Figure 4]10A to 10C are diagrams illustrating an example of the movement of a twist motor of the robot according to the embodiment. [Diagram 5] 13A to 13C are other diagrams illustrating an example of the movement of the twist motor of the robot according to the embodiment. [Figure 6] 10A to 10C are diagrams illustrating an example of the movement of an up and down motor of the robot according to the embodiment [Figure 7] 13A to 13C are other diagrams illustrating an example of the movement of the up and down motors of the robot according to [Figure 8] 1 is a block diagram showing a functional configuration of a robot according to an embodiment. [Figure 9] FIG. 2 is a block diagram showing a configuration of a power supply control unit according to the embodiment. [Figure 10] FIG. 2 is a diagram illustrating an example of an emotion map according to the embodiment. [Figure 11] FIG. 13 is a diagram illustrating an example of a personality value radar chart according to the embodiment. [Figure 12] FIG. 11 is a diagram illustrating an example of a growth table according to the embodiment. [Figure 13] FIG. 11 is a diagram illustrating an example of an operation content table according to the embodiment. [Figure 14] FIG. 2 is a diagram illustrating an example of a motion table according to the embodiment. [Figure 15] 11 is a flowchart of an operation control process according to the embodiment. [Figure 16] 11 is a flowchart of an action selection process according to the embodiment. [Figure 17] 11 is a flowchart of a personality correction value adjustment process according to the embodiment. [Figure 18] FIG. 13 is a diagram illustrating an example of a setting screen for an alarm function according to the embodiment. [Figure 19] 4 is a flowchart of an alarm control process according to the embodiment. [Figure 20] 4 is a flowchart of a sleep control process according to the embodiment. [Figure 21] 11 is a flowchart of a hard sleep process according to the embodiment. [Figure 22]4 is a flowchart of a power supply control process according to the embodiment. [Figure 23] 4 is a flowchart of a motor control process according to the embodiment. [Figure 24] FIG. 13 is a block diagram showing the functional configuration of a device control device and a robot according to a modified example. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals.
[0010] (Embodiment) An embodiment in which the device control device of the present invention is applied to a robot 200 shown in FIG. 1 will be described with reference to the drawings. The robot 200 according to the embodiment is a pet robot modeled after a small animal, driven by a rechargeable battery. As shown in FIG. 1, the robot 200 is covered with an exterior 201 equipped with decorative parts 202 modeled after eyes and bushy fur 203. A housing 207 of the robot 200 is stored inside the exterior 201. As shown in FIG. 2, the housing 207 of the robot 200 is composed of a head 204, a connecting part 205, and a body part 206, and the head 204 and the body part 206 are connected by the connecting part 205.
[0011] In the following description, it is assumed that the robot 200 is normally placed on a placement surface such as a floor, and the direction of the part of the robot 200 that corresponds to its face (the part of the head 204 opposite to the torso 206) is defined as the front, and the direction of the part that corresponds to its butt (the part of the torso 206 opposite to the head 204) is defined as the back. In addition, the direction of the part that contacts the placement surface when the robot 200 is normally placed on the placement surface is defined as the down, and the opposite direction is defined as the up. The direction that is perpendicular to a line extending in the front-to-back direction of the robot 200 and also perpendicular to a line extending in the up-down direction is defined as the width direction.
[0012] As shown in Fig. 2, the body 206 extends in the front-rear direction. The body 206 comes into contact with a support surface, such as a floor or a table, on which the robot 200 is placed, via the exterior 201. As shown in Fig. 2, a twist motor 221 is provided at the front end of the body 206, and the head 204 is connected to the front end of the body 206 via a connecting part 205. The connecting part 205 is provided with an up-down motor 222. Although the twist motor 221 is provided in the body 206 in Fig. 2, it may be provided in the connecting part 205 or in the head 204.
[0013] The connecting part 205 connects the body part 206 and the head part 204 to be rotatable (by the twist motor 221) about a first rotation axis that passes through the connecting part 205 and extends in the front-rear direction of the body part 206. As shown in Figs. 4 and 5 as front views of the housing 207, the twist motor 221 rotates the head part 204 clockwise (right-handed) around the first rotation axis within a forward rotation angle range, and rotates the head part 204 counterclockwise (left-handed) within a reverse rotation angle range, relative to the body part 206. Note that the clockwise direction in this description is the clockwise direction when looking from the body part 206 toward the head part 204. Also, the clockwise rotation is also referred to as a "right-handed twist rotation" and the counterclockwise rotation is also referred to as a "left-handed twist rotation". The maximum angle of the right-handed or left-handed twist rotation is arbitrary, but in this embodiment, it is assumed that the head part can rotate up to 90 degrees both to the left and right. 4 and 5, the angle of head 204 when head 204 is not twisted to the right or left as shown in Fig. 3 (hereinafter referred to as "twist reference angle") is set to 0 degrees. The angle when head 204 is twisted to the farthest right (clockwise) is set to -90 degrees, and the angle when head 204 is twisted to the farthest left (counterclockwise) is set to +90 degrees.
[0014] The connecting part 205 connects the body part 206 and the head part 204 so as to be rotatable (by the vertical motor 222) around a second rotation axis that passes through the connecting part 205 and extends in the width direction of the body part 206. As shown in Figs. 6 and 7 as side views of the housing 207, the vertical motor 222 rotates the head part 204 upward within a forward rotation angle range around the second rotation axis (forward rotation) and rotates the head part 204 downward within a reverse rotation angle range (reverse rotation). The maximum angle of the upward or downward rotation is arbitrary, but in this embodiment, the head part 204 can be rotated up to 75 degrees both upward and downward. In Figs. 6 and 7, the angle of the head part 204 when it is not rotated upward or downward (hereinafter referred to as the "vertical reference angle") shown in Fig. 2 is 0 degrees, the angle when it is rotated most downward is -75 degrees, and the angle when it is rotated most upward is +75 degrees. When the head 204 rotates vertically around the second rotation axis to the vertical reference angle or below the vertical reference angle, the head 204 can come into contact with a support surface such as a floor or a table on which the robot 200 is placed, via the exterior 201. Note that, although an example in which the first rotation axis and the second rotation axis are perpendicular to each other is shown in Fig. 2, the first and second rotation axes do not have to be perpendicular to each other.
[0015] 2, the robot 200 is provided with a touch sensor 211 on the head 204, and is capable of detecting that the user has stroked or hit the head 204. The body 206 is also provided with a touch sensor 211, and is capable of detecting that the user has stroked or hit the body 206.
[0016] The robot 200 also includes an acceleration sensor 212 on the torso 206, and is capable of detecting the posture of the robot 200 itself, and detecting that the robot 200 has been lifted up, turned around, or thrown by a user. The robot 200 also includes a microphone 213 on the torso 206, and is capable of detecting external sounds. The robot 200 also includes a speaker 231 on the torso 206, and is capable of using the speaker 231 to make sounds that the robot 200 makes, or sing songs.
[0017] The robot 200 is also provided with an illuminance sensor 214 on the body 206, and is capable of detecting the brightness of the surroundings. Since the exterior 201 is made of a material that transmits light, the robot 200 can detect the brightness of the surroundings with the illuminance sensor 214 even when covered with the exterior 201.
[0018] The robot 200 also includes a battery (see FIG. 9) as a power source for the twist motor 221, the up-down motor 222, etc., and a wireless power supply receiving circuit 255. The wireless power supply receiving circuit 255 is provided in the body 206, and receives power from a wireless charging device (not shown) provided separately from the robot 200 when charging the battery.
[0019] In this embodiment, the acceleration sensor 212, the microphone 213, the illuminance sensor 214, and the speaker 231 are provided in the body 206, but all or some of these may be provided in the head 204. In addition to the acceleration sensor 212, the microphone 213, the illuminance sensor 214, and the speaker 231 provided in the body 206, all or some of these may also be provided in the head 204. In addition, the touch sensor 211 is provided in each of the head 204 and the body 206, but it may be provided in only one of the head 204 or the body 206. Furthermore, a plurality of each of these may be provided.
[0020] In this embodiment, since the housing 207 of the robot 200 is covered by the exterior 201, the head 204 and the torso 206 are indirectly in contact with a placement surface, such as a floor or a table, on which the robot 200 is placed, via the exterior 201. However, the present invention is not limited to this form, and the head 204 and the torso 206 may be in direct contact with the placement surface. For example, the lower part (the part that contacts the placement surface) of the exterior 201 may not exist, and the lower part (the part that contacts the placement surface) of the housing 207 may be exposed, or the exterior 201 may not exist at all, and the entire housing 207 may be exposed.
[0021] Next, the functional configuration of the robot 200 will be described. As shown in FIG. 8, the robot 200 includes an appliance control device 100, a sensor unit 210, a driving unit 220, an output unit 230, an operation unit 240, and a power supply control unit 250. The appliance control device 100 includes a processing unit 110, a storage unit 120, and a communication unit 130. In FIG. 8, the appliance control device 100, the sensor unit 210, the driving unit 220, the output unit 230, the operation unit 240, and the power supply control unit 250 are connected via a bus line BL, but this is an example. The appliance control device 100, the sensor unit 210, the driving unit 220, the output unit 230, the operation unit 240, and the power supply control unit 250 may be connected via a wired interface such as a Universal Serial Bus (USB) cable, or a wireless interface such as Bluetooth (registered trademark). Furthermore, the processing unit 110 may be connected to the storage unit 120 and the communication unit 130 via a bus line BL or the like.
[0022] The device control device 100 controls the operation of the robot 200 via the processing unit 110 and the memory unit 120 .
[0023] The processing unit 110 is composed of, for example, a CPU (Central Processing Unit) and executes various processes described later using programs stored in the storage unit 120. The processing unit 110 supports a multi-thread function that executes multiple processes in parallel, and can therefore execute various processes described later in parallel. The processing unit 110 also has a clock function and a timer function, and can measure the date and time, etc.
[0024] The storage unit 120 is composed of a ROM (Read Only Memory), a flash memory, a RAM (Random Access Memory), etc. The ROM stores programs to be executed by the CPU of the processing unit 110 and data required in advance for executing the programs. The flash memory is a writable non-volatile memory, and stores data that is to be retained even after the power is turned off. The RAM stores data that is created or changed during program execution.
[0025] The communication unit 130 includes a communication module compatible with wireless LAN (Local Area Network), Bluetooth (registered trademark), etc., and performs data communication with an external device such as a smartphone. The contents of the data communication include, for example, alarm setting data and sleep setting data used to set an alarm function and a sleep function, which will be described later.
[0026] The sensor unit 210 includes the above-mentioned touch sensor 211, acceleration sensor 212, microphone 213, and illuminance sensor 214. The processing unit 110 acquires, via the bus line BL, detection values detected by the various sensors included in the sensor unit 210 as external stimulus data representing external stimuli acting on the robot 200. Note that the sensor unit 210 may include sensors other than the touch sensor 211, acceleration sensor 212, microphone 213, and illuminance sensor 214. By increasing the types of sensors included in the sensor unit 210, it is possible to increase the types of external stimuli that the processing unit 110 can acquire.
[0027] The touch sensor 211 detects that some object has come into contact with the touch sensor 211. The touch sensor 211 is, for example, a pressure sensor or a capacitance sensor. The processing unit 110 acquires the contact strength and contact time based on the detection value from the touch sensor 211, and can detect an external stimulus such as the robot 200 being stroked or hit by a user based on these values (see, for example, Japanese Patent Publication No. 2019-217122). Note that the processing unit 110 may detect these external stimuli with a sensor other than the touch sensor 211 (see, for example, Japanese Patent Publication No. 6575637).
[0028] The acceleration sensor 212 detects acceleration in three axial directions consisting of the front-rear direction, width (left-right) direction, and up-down direction of the body 206 of the robot 200. Since the acceleration sensor 212 detects gravitational acceleration when the robot 200 is stationary, the processing unit 110 can detect the current posture of the robot 200 based on the gravitational acceleration detected by the acceleration sensor 212. Also, for example, when the user lifts or throws the robot 200, the acceleration sensor 212 detects acceleration accompanying the movement of the robot 200 in addition to the gravitational acceleration. Therefore, the processing 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.
[0029] The microphone 213 detects sounds around the robot 200. Based on the sound components detected by the microphone 213, the processing unit 110 can detect, for example, whether the user is calling out to the robot 200 or clapping his hands.
[0030] The illuminance sensor 214 includes a light receiving element such as a photodiode, and detects the brightness (illuminance) of the surroundings. For example, when the illuminance sensor 214 detects that the surroundings are dark, the processing unit 110 can perform control to put the robot 200 to sleep in a pseudo manner (to enter a sleep control mode).
[0031] The driving unit 220 includes a twist motor 221 and an up-down motor 222 as movable parts for expressing the movement of the robot 200 (own machine). The driving unit 220 (twist motor 221 and up-down motor 222) is driven by the processing unit 110. The twist motor 221 and up-down motor 222 are servo motors, and when the processing unit 110 designates an operation time and an operation angle and instructs rotation, they operate to rotate to a position of the designated operation angle within the designated operation time. The driving unit 220 may include other appropriate actuators as movable parts, such as a fluid pressure motor. By the processing unit 110 controlling the driving unit 220, the robot 200 can express an operation such as lifting the head 204 (rotating it upward around the second rotation axis) or twisting it sideways (twisting and rotating it to the right or left around the first rotation axis). The movement control data for performing these movements is recorded in a motion table 125 described later, and the movements of the robot 200 are controlled based on the detected external stimuli and growth values described later.
[0032] The output unit 230 includes a speaker 231, and the processing unit 110 inputs sound data to the output unit 230, which outputs sound. For example, the processing unit 110 inputs data on the cry of the robot 200 to the output unit 230, which causes the robot 200 to emit a pseudo cry. This cry data is also recorded in the motion table 125, and the cry is selected based on the detected external stimuli and a growth value, which will be described later, and the like. The output unit 230, which is configured with the speaker 231, is also called a sound output unit.
[0033] Furthermore, instead of or in addition to the speaker 231, the output unit 230 may include a display such as a liquid crystal display or a light-emitting unit such as an LED (Light Emitting Diode), and may display an image based on the detected external stimuli or growth values described later on the display or may cause the LED to emit light.
[0034] The operation unit 240 is composed of, for example, operation buttons, a volume knob, etc. The operation unit 240 is an interface for accepting operations by a user (owner or recipient), such as turning the power on / off, adjusting the volume of the output sound, etc. In order to enhance the feeling of life in the robot 200, it is possible for the operation unit 240 to include only a power switch 241 on the inside of the exterior 201, and not to include other operation buttons, volume knobs, etc. Even in this case, operations such as adjusting the volume of the robot 200 can be performed using an external smartphone or the like connected via the communication unit 130.
[0035] The power supply control unit 250, which will be described in detail later, includes a sub-microcomputer 251 and the like as shown in FIG. 9, and performs power supply control such as charging a battery 253 of the robot 200 and controlling ON / OFF of a power supply of a main function unit 290 that realizes the main functions of the robot 200. The main function unit 290 refers to the functional units constituting the robot 200 excluding the power supply control unit 250, and includes a processing unit 110, a driving unit 220, and the like. In the robot 200, in order to give a feeling of life, the battery is charged by wireless charging without connecting a charging cable or the like. Any method of wireless charging may be used, but in this embodiment, an electromagnetic induction method is used.
[0036] When the robot 200 is placed on the wireless charging device 256, an induced magnetic flux is generated between the wireless power supply receiving circuit 255 provided on the bottom surface of the body 206 and the external wireless charging device 256, and charging is performed. In the electromagnetic induction method, if the robot 200 moves during charging and the distance between the wireless power supply receiving circuit 255 and the wireless charging device 256 increases, normal charging cannot be performed. For this reason, a signal (operation limiting signal) that limits the operation of the robot 200 (drive unit 220) is transmitted from the sub-microcomputer 251 to the processing unit 110 during charging, and the processing unit 110 controls the robot 200 to limit its operation. This mechanism will also be described later.
[0037] Returning to FIG. 8, among the data stored in storage unit 120, emotion data 121, emotion change data 122, growth table 123, action content table 124, motion table 125, and growth days data 126, which are characteristic data of this embodiment, will be described in order.
[0038] The emotion data 121 is data for making the robot 200 have a pseudo emotion, and is data (X, Y) showing coordinates on the emotion map 300. As shown in FIG. 10, the emotion map 300 is expressed in a two-dimensional coordinate system having an X-axis 311 representing a degree of security (anxiety) and a Y-axis 312 representing a degree of excitement (apathy). The origin 310 (0, 0) on the emotion map represents a normal emotion. The positive X-coordinate value (X value) represents a higher absolute value, which indicates a higher degree of security, and the positive Y-coordinate value (Y value) represents a higher absolute value, which indicates a higher degree of excitement. The negative X-value represents a higher absolute value, which indicates a higher degree of anxiety, and the negative Y-value represents a higher absolute value, which indicates a higher degree of apathy.
[0039] The emotion data 121 represents a plurality of different pseudo emotions (four in this embodiment). In this embodiment, among the values representing the pseudo emotions, the relief level and anxiety level are collectively represented on one axis (X-axis), and the excitement level and lethargy level are collectively represented on another axis (Y-axis). Therefore, the emotion data 121 has two values, an X value (relief level, anxiety level) and a Y value (excitement level, lethargy level), and a point on the emotion map 300 represented by the X value and the Y value represents the pseudo emotion of the robot 200. The initial value of the emotion data 121 is (0,0).
[0040] Emotion data 121 is data that represents simulated emotions of robot 200. Although emotion map 300 is shown in a two-dimensional coordinate system in FIG. 10, emotion map 300 may have any number of dimensions. Emotion map 300 may be defined in one dimension, and one value may be set as emotion data 121. Furthermore, emotion map 300 may be defined in a coordinate system of three or more dimensions by adding other axes, and emotion data 121 may be set to a value equal to the number of dimensions of emotion map 300.
[0041] In this embodiment, the size of the initial value of the emotion map 300 is 100 for both the X value and the Y value, and -100 for both the minimum and maximum values. During the first period, each time the number of days of the simulated growth of the robot 200 increases by one day, both the maximum and minimum values of the emotion map 300 are expanded by 2. Here, the first period is a period during which the robot 200 grows in a simulated manner, and is, for example, a period of 50 days from the simulated birth of the robot 200. The simulated birth of the robot 200 is the first time the robot 200 is started by the user after being shipped from the factory. When the number of days of growth reaches 25 days, the maximum and minimum values of the X value and the Y value become 150 and -150, respectively, as shown in a frame 302 in FIG. Then, when the first period (50 days in this example) has passed, the pseudo-growth of the robot 200 is deemed to be complete, and the size of the emotion map 300 is fixed, with the maximum X and Y values both becoming 200 and the minimum becoming -200, as shown in frame 303 in FIG. 10.
[0042] The settable range of the emotion data 121 is defined by the emotion map 300. Therefore, as the size of the emotion map 300 increases, the settable range of the emotion data 121 increases. By increasing the settable range of the emotion data 121, richer emotional expression becomes possible, and the simulated growth of the robot 200 is expressed by increasing the size of the emotion map 300. The size of the emotion map 300 is fixed after the first period has elapsed, and the simulated growth of the robot 200 ends. The condition for stopping the simulated growth of the robot 200 is not limited to the above-mentioned "stop when the first period has elapsed", and other conditions may be added. For example, it may be "stop when any of the four personality values becomes 10 (maximum)". If the growth is stopped under this condition, the personality is fixed when only one of the four personalities becomes maximum, making it possible to emphasize a specific personality.
[0043] The emotion change data 122 is data that sets the amount of change by which each of the X value and Y value of the emotion data 121 is increased or decreased. In this embodiment, the emotion change data 122 corresponding to the X of the emotion data 121 includes DXP that increases the X value and DXM that decreases the X value, and the emotion change data 122 corresponding to the Y value of the emotion data 121 includes DYP that increases the Y value and DYM that decreases the Y value. In other words, the emotion change data 122 is made up of the following four variables, and is data that indicates the degree to which the simulated emotion of the robot 200 is changed. DXP: Ease of feeling at ease (the tendency for the X value on the emotion map to change in a positive direction) DXM: Tendency to become anxious (the tendency for the X value on the emotion map to change in the negative direction) DYP: Excitability (the tendency for the Y value on the emotion map to change in the positive direction) DYM: Tendency to become apathetic (the tendency for the Y value on the emotion map to change in the negative direction)
[0044] In the present embodiment, as an example, the initial values of these variables are all set to 10, and are increased to a maximum of 20 by a process of learning the emotion change data in the motion control process described later. In this learning process, the emotion change data is changed according to a condition based on whether the value of the emotion data has reached the maximum or minimum value of the emotion map 300 (first condition based on external stimulus data). Note that the first condition based on the external stimulus data is not limited to the above condition, and any condition can be set as long as it is a condition for changing (learning) the emotion change data before the size of the emotion map 300 is fixed (for example, a condition related to the degree of the pseudo emotion of the robot 200 represented by the emotion data 121). Since the emotion change data 122, i.e., the degree of change in emotion, changes by this learning process, the robot 200 will have various personalities depending on how the user interacts with the robot 200. In other words, the personality of the robot 200 will be formed differently for each individual depending on how the user interacts with the robot 200.
[0045] Therefore, in this embodiment, each personality data (personality value) is derived by subtracting 10 from each emotion change data 122. That is, the personality value (cheerful) is obtained by subtracting 10 from DXP, which indicates the ease of feeling at ease, the personality value (shy) is obtained by subtracting 10 from DXM, which indicates the ease of feeling anxious, the personality value (active) is obtained by subtracting 10 from DYP, which indicates the ease of getting excited, and the personality value (spoiled) is obtained by subtracting 10 from DYM, which indicates the ease of becoming lethargic. As a result, for example, as shown in FIG. 11, the personality value (cheerful) is plotted on axis 411, the personality value (active) is plotted on axis 412, the personality value (shy) is plotted on axis 413, and the personality value (spoiled) is plotted on axis 414, respectively, to generate a personality value radar chart 400.
[0046] Since the initial value of each personality value is 0, the initial personality of the robot 200 is represented by the origin 410 of the personality value radar chart 400. Then, as the robot 200 grows, each personality value changes up to an upper limit of 10 depending on external stimuli (how the user interacts with the robot 200) detected by the sensor unit 210. When the four personality values change from 0 to 10 as in this embodiment, 11 to the fourth power = 14641 different personalities can be expressed.
[0047] In this embodiment, the largest value among these four personality values is used as growth degree data (growth value) indicating the pseudo growth degree of the robot 200. Then, the processing unit 110 controls so that the operation content of the robot 200 varies as the pseudo growth of the robot 200 (as the growth value increases). Data used by the processing unit 110 for this purpose is the growth table 123.
[0048] As shown in FIG. 12, the growth table 123 records the types of actions that the robot 200 performs in response to action triggers such as external stimuli detected by the sensor unit 210, and the probability that each action will be selected in response to a growth value (hereinafter referred to as "action selection probability"). The action selection probability is set so that while the growth value is small, a basic action set in response to the action trigger is selected regardless of the personality value, and as the growth value increases, a personality action set in response to the personality value is selected. The action selection probability is set so that the types of basic actions that can be selected increase as the growth value increases. Note that, in FIG. 12, one personality action is selected for each action trigger, but the types of personality actions that can be selected may be increased in response to an increase in the personality value, as in the case of basic actions.
[0049] For example, assume that the current personality values of the robot 200 are, as shown in FIG. 11, personality value (cheerful) 3, personality value (active) 8, personality value (shy) 5, and personality value (spoiled) 4, and a loud sound is detected by the microphone 213. In this case, the growth value is 8, which is the maximum value of the four personality values, and the action trigger is "a loud noise is heard." Then, referring to the item in the growth table 123 shown in FIG. 12 where the action trigger is "a loud noise is heard" and the growth value is 8, it is found that the action selection probability is 20% for "basic action 2-0", 20% for "basic action 2-1", 40% for "basic action 2-2", and 20% for "personality action 2-0".
[0050] That is, in this case, "basic action 2-0" is selected with a probability of 20%, "basic action 2-1" with a probability of 20%, "basic action 2-2" with a probability of 40%, and "personality action 2-0" with a probability of 20%. If "personality action 2-0" is selected, one of four types of personality actions as shown in FIG. 13 is further selected according to the four personality values. Then, the robot 200 executes the action selected here. This mechanism is realized by the action control process described later. The action mode in which an action is selected from among the personality actions is called the first action mode, and the action mode in which an action is selected from among the basic actions is called the second action mode.
[0051] As will be described later, since personality actions are selected with a probability according to the magnitude of each of the four personality values, there is little variation in selection while the personality values are small (for example, most of them are 0). Therefore, in this embodiment, the maximum value of the four personality values is set as the growth value. This has the effect that the first action mode is selected when the variation of actions selected as personality actions becomes abundant. Note that, as well as the maximum value, the total value, average value, mode value, etc. can also be used as an index for determining whether the variation of actions selected by the personality values will become abundant, so the total value, average value, mode value, etc. of the personality values may be used as the growth value.
[0052] In addition, the growth table 123 may have any form as long as it can be defined as a function (growth function) that returns the action selection probability of each action type using a growth value as an argument for each action trigger, and does not necessarily have to be tabular data as shown in Figure 12.
[0053] As shown in Fig. 13, the action content table 124 is a table in which the specific action content of each action type defined in the growth table 123 is recorded. However, for personality actions, the action content is defined for each personality type. The action content table 124 is not essential data. For example, if the growth table 123 is configured in such a way that the specific action content is directly recorded in the action type item of the growth table 123, the action content table 124 is not necessary.
[0054] 14, the motion table 125 is a table that records how the processing unit 110 controls the twist motor 221 and the up-down motor 222 for each type of motion defined in the growth table 123. Specifically, as shown in Fig. 14, for each type of motion, in each row, the motion time (milliseconds), the motion angle of the twist motor 221 after the motion time, and the motion angle of the up-down motor 222 after the motion time are recorded. Note that in this embodiment, audio data to be output from the speaker 231 for each type of motion is also recorded.
[0055] For example, when basic operation 2-0 is selected by the operation control process described later, the processing unit 110 first controls the twist motor 221 and the up-down motor 222 so that their angles become 0 degrees after 100 milliseconds, and controls the up-down motor 222 so that its angle becomes -24 degrees after 100 milliseconds. Then, the motors are not rotated for 700 milliseconds after that, and the angle of the twist motor 221 is controlled to become 34 degrees and the angle of the up-down motor 222 is controlled to become -24 degrees after 500 milliseconds. Then, the angle of the twist motor 221 is controlled to become -34 degrees after 400 milliseconds, and the angle of the twist motor 221 and the up-down motor 222 is controlled to become 0 degrees after 500 milliseconds, completing the operation of basic operation 2-0. In addition, the processing unit 110 reproduces a short beeping sound from the speaker 231 using the audio data of the short beeping sound in parallel with the driving of the twist motor 221 and the up-down motor 222 described above.
[0056] The growth days data 126 has an initial value of 1, and is incremented by 1 each time a day passes. The growth days data 126 represents the pseudo number of days of growth (the pseudo number of days from birth) of the robot 200. Here, the period of the number of days of growth represented by the growth days data 126 is referred to as the second period.
[0057] Although not shown, the storage unit 120 also stores four personality correction values (cheerful correction value, lively correction value, shy correction value, and spoiled correction value) that are increased or decreased in a personality correction value adjustment process described later. Each personality value (personality value (cheerful), personality value (lively), personality value (shy), and personality value (spoiled)) is fixed when the simulated growth of the robot 200 is completed, but even after the growth is completed, the personality correction value is data (personality correction data) for correcting the personality according to the user's attitude toward the robot 200. As described later, the personality correction value is set according to a condition (second condition based on external stimulus data) based on which area on the emotion map 300 the emotion data 121 has existed for the longest time. Note that the second condition based on the external stimulus data is not limited to the above condition, and any condition can be set as long as it is a condition for correcting the personality after the size of the emotion map 300 is fixed (for example, a condition related to the occurrence frequency of the simulated emotion of the robot 200 represented by the emotion data 121).
[0058] Next, the motion control process executed by the processing unit 110 of the device control device 100 will be described with reference to the flowchart shown in Fig. 15. The motion control process is a process in which the device control device 100 controls the motion and cry of the robot 200 based on detection values from the sensor unit 210 and the like. When the user turns on the power of the robot 200, a thread for this motion control process starts to be executed in parallel with alarm control process, sleep control process, and the like, which will be described later. The motion control process controls the drive unit 220 and output unit 230 (sound output unit) to express the motion of the robot 200 and output sounds such as cries.
[0059] First, the processing unit 110 sets various data such as emotion data 121, emotion change data 122, growth days data 126, personality correction value, etc. (step S101). When the robot 200 is started for the first time (when the robot is started for the first time by the user after being shipped from the factory), these values are set to initial values (the initial values of emotion data 121, emotion change data 122, growth days data 126, and personality correction value are all set to a value of 0), but when the robot is started for the second time or later, the values of the data stored in step S109 of the previous robot control process, which will be described later, are set. However, the emotion data 121 and personality correction value may all be initialized to 0 every time the power is turned on.
[0060] Next, the processing unit 110 determines whether or not there is an external stimulus detected by the sensor unit 210 (step S102). If there is an external stimulus (step S102; Yes), the processing unit 110 acquires the external stimulus from the sensor unit 210 (step S103).
[0061] Then, the processing unit 110 acquires emotion change data 122 to be added to or subtracted from the emotion data 121 in response to the external stimulus acquired in step S103 (step S104). Specifically, for example, when the touch sensor 211 of the head 204 detects that the head 204 has been stroked as an external stimulus, the robot 200 feels a pseudo sense of security, and therefore the processing unit 110 acquires DXP as emotion change data 122 to be added to the X value of the emotion data 121.
[0062] Then, the processing unit 110 sets the emotion data 121 according to the emotion change data 122 acquired in step S104 (step S105). Specifically, for example, if DXP has been acquired as the emotion change data 122 in step S104, the processing unit 110 adds the DXP of the emotion change data 122 to the X value of the emotion data 121. However, if the value (X value, Y value) of the emotion data 121 exceeds the maximum value of the emotion map 300 when the emotion change data 122 is added, the value of the emotion data 121 is set to the maximum value of the emotion map 300. Also, if the value of the emotion data 121 becomes less than the minimum value of the emotion map 300 when the emotion change data 122 is subtracted, the value of the emotion data 121 is set to the minimum value of the emotion map 300.
[0063] In steps S104 and S105, it is possible to arbitrarily set what emotion change data 122 is acquired for each external stimulus and what emotion data 121 is set, but here, an example is shown below. Note that the maximum and minimum values of the X and Y values of emotion data 121 are defined by the size of emotion map 300, so the following calculation sets the maximum value when it exceeds the maximum value of emotion map 300, and sets the minimum value when it falls below the minimum value of emotion map 300.
[0064] Head 204 is stroked (feels safe): X=X+DXP Hit on the head 204 (feels anxious): X=X-DXM (These external stimuli can be detected by the touch sensor 211 on the head 204.) The torso 206 is stroked (excited): Y=Y+DYP Hitting the torso 206 (becoming lethargic): Y=Y-DYM (These external stimuli can be detected by the touch sensor 211 on the torso 206.) Being held with head up (happy): X=X+DXP and Y=Y+DYP Hanging head down (sad): X=X-DXM and Y=Y-DYM (These external stimuli can be detected by the touch sensor 211 and the acceleration sensor 212.) A gentle voice calls out to you (becomes peaceful): X=X+DXP and Y=Y-DYM Being yelled at loudly (irritated): X=X-DXM and Y=Y+DYP (These external stimuli can be detected by microphone 213.)
[0065] For example, when the head 204 is stroked, the simulated emotion of the robot 200 is one of relief, and the DXP of the emotion change data 122 is added to the X value of the emotion data 121. Conversely, when the head 204 is hit, the simulated emotion of the robot 200 is one of anxiety, and the DXM of the emotion change data 122 is subtracted from the X value of the emotion data 121. In step S103, the processing unit 110 acquires a plurality of external stimuli of different types from each other by the plurality of sensors provided in the sensor unit 210, so that emotion change data 122 is acquired in response to each of the plurality of external stimuli, and the emotion data 121 is set in response to the acquired emotion change data 122.
[0066] Then, the processing unit 110 executes an action selection process using the information on the external stimulus acquired in step S103 as an action trigger (step S106), and then proceeds to step S108. Note that, although the details of the action selection process will be described later, the action trigger is information on the external stimulus that triggers the robot 200 to perform some action.
[0067] On the other hand, if there is no external stimulus in step S102 (step S102; No), the processing unit 110 judges whether or not a spontaneous movement such as breathing is performed (step S107). Although the method of judging whether or not a spontaneous movement is performed is arbitrary, in this embodiment, the judgment in step S107 is set to Yes every first reference time (for example, 5 seconds).
[0068] If a spontaneous action is to be performed (step S107; Yes), the processing unit 110 proceeds to step S106, executes an action selection process using "the passage of the first reference time" as an action trigger, and then proceeds to step S108.
[0069] If the robot 200 does not move spontaneously (step S107; No), the processing unit 110 judges whether or not to end the processing (step S108). For example, when the operation unit 240 receives an instruction from the user to turn off the power of the robot 200, the processing is ended. If the processing is ended (step S108; Yes), the processing unit 110 stores various data such as the emotion data 121, the emotion change data 122, and the growth days data 126 in a non-volatile memory (e.g., a flash memory) of the storage unit 120 (step S109), and ends the motion control processing. The processing of storing various data in the non-volatile memory when the power is turned off may be performed by separately operating a power OFF judgment thread in parallel with other threads such as the motion control processing. If the processing equivalent to steps S108 and S109 is performed in the power OFF judgment thread, the processing of steps S108 and S109 in the motion control processing can be omitted.
[0070] If the process is not to be ended (step S108; No), the processing unit 110 judges whether or not the date has changed by the clock function (step S110). If the date has not changed (step S110; No), the process returns to step S102.
[0071] If the date has changed (step S110; Yes), the processing unit 110 judges whether or not it is within the first period (step S111). If the first period is, for example, 50 days from the pseudo-birth of the robot 200 (for example, the first activation by the user after purchase), the processing unit 110 judges that it is within the first period if the growth day number data 126 is 50 or less. If it is not within the first period (step S111; No), the processing unit 110 executes a personality correction value adjustment process (step S112) and proceeds to step S115. The personality correction value adjustment process will be described in detail later.
[0072] If it is during the first period (step S111; Yes), the processing unit 110 performs learning of the emotion change data 122 (step S113). Specifically, in step S105 of that day, if the X value of the emotion data 121 has been set to the maximum value of the emotion map 300 even once, 1 is added to the DXP of the emotion change data 122, if the Y value of the emotion data 121 has been set to the maximum value of the emotion map 300 even once, 1 is added to the DYP of the emotion change data 122, if the X value of the emotion data 121 has been set to the minimum value of the emotion map 300 even once, 1 is added to the DXM of the emotion change data 122, and if the Y value of the emotion data 121 has been set to the minimum value of the emotion map 300 even once, 1 is added to the DYM of the emotion change data 122, thereby updating the emotion change data 122. This update is also called learning of the emotion change data 122.
[0073] However, if each value of the emotion change data 122 becomes too large, the amount of change in one time of the emotion data 121 becomes too large, so each value of the emotion change data 122 is limited to a maximum value of, for example, 20 or less. Also, although 1 is added to each piece of emotion change data 122 here, the value added is not limited to 1. For example, the number of times each value of the emotion data 121 is set to the maximum or minimum value of the emotion map 300 may be counted, and if this number is large, the value added to the emotion change data 122 may be increased.
[0074] The learning of emotion change data 122 in step S113 is based on whether or not emotion data 121 is set to the maximum or minimum value of emotion map 300 in step S105. Whether or not emotion data 121 is set to the maximum or minimum value of emotion map 300 in step S105 is based on the external stimulus acquired in step S103. In step S103, a plurality of different types of external stimuli are acquired by a plurality of sensors included in sensor unit 210, and therefore each piece of emotion change data 122 is learned in response to each of these plurality of external stimuli.
[0075] For example, when only the head 204 is stroked many times, only the DXP of the emotion change data 122 increases, and the other emotion change data 122 does not change, so that the robot 200 has a personality that is easy to feel at ease. When only the head 204 is hit many times, only the DXM of the emotion change data 122 increases, and the other emotion change data 122 does not change, so that the robot 200 has a personality that is easy to feel anxious. In this way, the processing unit 110 learns to make the emotion change data 122 different from each other in response to each external stimulus. In this embodiment, the personality value is calculated from the emotion change data 122, and the maximum value of the personality value becomes the growth value, so that the effect of the robot 200 growing pseudo based on the user's way of interacting with the robot 200 can be obtained.
[0076] In this embodiment, in step S105, if the X value or Y value of the emotion data 121 reaches the maximum value or minimum value of the emotion map 300 even once during the period of one day, the emotion change data 122 is learned. However, the condition for learning the emotion change data 122 is not limited to this. For example, the emotion change data 122 may be learned if the X value or Y value of the emotion data 121 reaches a predetermined value even once (for example, 0.5 times the maximum value or 0.5 times the minimum value of the emotion map 300). In addition, the period is not limited to the period of one day, but if the X value or Y value of the emotion data 121 reaches a predetermined value even once during other periods such as half a day or one week, the emotion change data 122 may be learned. In addition, the emotion change data 122 may be learned if the X value or Y value of the emotion data 121 reaches a predetermined value even once during a period until the number of times an external stimulus is acquired reaches a predetermined number (for example, 50 times), instead of a fixed period such as one day.
[0077] Returning to FIG. 15, the processing unit 110 expands the emotion map 300 by 2 for both the maximum and minimum values (step S114). Note that here, the emotion map 300 is expanded by 2 for both the maximum and minimum values, but this expansion value of "2" is merely an example, and the emotion map 300 may be expanded by 3 or more, or may be expanded by 1. The expansion value may not be the same for each axis of the emotion map 300, or for the maximum and minimum values. The processing unit 110 then adds 1 to the number of days of growth data 126, initializes both the X and Y values of the emotion data to 0 (step S115), and returns to step S102.
[0078] In FIG. 15, learning of emotion change data and expansion of emotion map are performed after it is determined that the date has changed in step S110, but they may be performed after it is determined that a reference time (for example, 9 p.m.) has been reached. Also, the determination in step S110 may be based on a value accumulated by a timer function of the processing unit 110 for the time that the robot 200 has been powered on, rather than on the actual date. For example, each time the accumulated time that the power has been on becomes a multiple of 24, the robot 200 may be considered to have grown by one day, and learning of emotion change data and expansion of the emotion map may be performed. Also, taking into consideration a user who tends to leave the robot 200 unattended (so that the growth of the robot 200 slows down when the robot is left unattended), the determination may be based on the number of times that an external stimulus is acquired (for example, each time the number of acquisitions reaches 100, it may be considered to have grown by one day).
[0079] Next, the action selection process executed in step S106 of the above-mentioned action control process will be described with reference to FIG.
[0080] First, the processing unit 110 judges whether or not it is in the first period (step S200). If it is in the first period (step S200; Yes), the processing unit 110 calculates a personality value from the emotion change data 122 learned in step S113 (step S201). Specifically, four personality values are calculated as follows. Since the emotion change data 122 each has an initial value of 10 and increases up to a maximum of 20, here, 10 is subtracted to set the value range to 0 to 10. Personality score (cheerful) = DXP-10 Personality score (shy) = DXM-10 Personality score (active) = DYP-10 Personality score (spoiled) = DYM-10
[0081] On the other hand, if it is not the first period (step S200; No), the processing unit 110 calculates a corrected personality value based on the emotion change data 122 learned in step S113 and the personality correction value adjusted in step S112 (step S201). Specifically, four personality values are calculated as follows. Since the emotion change data 122 each has an initial value of 10 and can increase up to a maximum of 20, 10 is subtracted here to set the value range to 0 to 10, and then each correction value is added. However, if the value to which the correction value is added becomes negative, it is corrected to 0, and if it exceeds 10, it is corrected to 10, so that each personality value is between 0 and 10. Personality value (cheerful) = DXP-10 + cheerfulness correction value Personality score (shy) = DXM-10 + shyness correction value Personality score (active) = DYP-10 + Activeness correction value Personality score (spoiled) = DYM-10 + spoiled correction value
[0082] Next, the processing unit 110 calculates the largest value among these personality values as a growth value (step S202). Then, the processing unit 110 refers to the growth table 123 and acquires the action selection probability of each action type corresponding to the action trigger given when executing the action selection process and the growth value calculated in step S202 (step S203).
[0083] Next, the processing unit 110 selects an action type using a random number based on the action selection probability of each action type acquired in step S203 (step S204). For example, when the calculated growth value is 8 and the action trigger is "loud noise is made", "basic action 2-0" is selected with a 20% probability, "basic action 2-1" with a 20% probability, "basic action 2-2" with a 40% probability, and "personality action 2-0" with a 20% probability (see FIG. 12).
[0084] Then, the processing unit 110 judges whether or not a character action has been selected in step S204 (step S205). If a character action has not been selected, that is, if a basic action has been selected (step S205; No), the processing proceeds to step S208.
[0085] If a personality action is selected (step S205; Yes), the processing unit 110 obtains the selection probability of each personality based on the magnitude of each personality value (step S206). Specifically, for each personality, the selection probability of that personality is determined by dividing the personality value corresponding to that personality by the total value of the four personality values.
[0086] Then, the processing unit 110 selects a personality action using a random number based on the selection probability of each personality acquired in step S206 (step S207). For example, if the personality value (cheerful) is 3, the personality value (active) is 8, the personality value (shy) is 5, and the personality value (spoiled) is 4, the sum of these is 3+8+5+4=20. Therefore, in this case, the "cheerful" personality action will be selected with a probability of 3 / 20=15%, the "active" personality action with a probability of 8 / 20=40%, the "shy" personality action with a probability of 5 / 20=25%, and the "spoiled" personality action with a probability of 4 / 20=20%.
[0087] Next, the processing unit 110 executes the action selected in step S204 or S207 (step S208), ends the action selection process, and proceeds to step S108 of the action control process.
[0088] Next, the personality correction value adjustment process executed in step S112 of the above-mentioned operation control process will be described with reference to FIG.
[0089] First, processing unit 110 calculates the area on emotion map 300 where emotion data 121 existed the longest during that day (until the determination in step S110 of FIG. 15 switches from No to Yes) (hereinafter referred to as the "longest existence area"), based on the history of changes in emotion data 121 (movement on emotion map 300) during that day (step S301).
[0090] Then, the processing unit 110 judges whether or not the longest presence area calculated in step S301 is a safe area (specifically, an area with an X value of 100 or more) on the emotion map 300 shown in Fig. 10 (step S302). If the longest presence area is a safe area on the emotion map 300 (step S302; Yes), the processing unit 110 adds 1 to the cheerful correction value of the personality correction value and subtracts 1 from the shy correction value (step S303), and proceeds to step S304.
[0091] If the longest presence area is not a safe area on the emotion map 300 (step S302; No), the processing unit 110 judges whether the longest presence area is an excited area on the emotion map 300 (specifically, an area with a Y value of 100 or more) (step S304). If the longest presence area is an excited area on the emotion map 300 (step S304; Yes), the processing unit 110 adds 1 to the activeness correction value of the personality correction value and subtracts 1 from the spoiled child correction value (step S305), and proceeds to step S306.
[0092] If the longest presence area is not an excited area on the emotion map 300 (step S304; No), the processing unit 110 judges whether the longest presence area is an anxious area on the emotion map 300 (specifically, an area with an X value of -100 or less) (step S306). If the longest presence area is an anxious area on the emotion map 300 (step S306; Yes), the processing unit 110 adds 1 to the shyness correction value of the personality correction value and subtracts 1 from the cheerfulness correction value (step S307), and proceeds to step S308.
[0093] If the longest presence area is not an anxious area on the emotion map 300 (step S306; No), the processing unit 110 judges whether the longest presence area is a lethargic area on the emotion map 300 (specifically, an area with an X value of -100 or less) (step S308). If the longest presence area is a lethargic area on the emotion map 300 (step S308; Yes), the processing unit 110 adds 1 to the spoiled correction value of the personality correction value and subtracts 1 from the active correction value (step S309), and proceeds to step S310.
[0094] If the longest presence area is not the apathetic area on the emotion map 300 (step S308; No), the processing unit 110 judges whether the longest presence area is the central area on the emotion map 300 (specifically, an area where the absolute values of both the X value and the Y value are less than 100) (step S310). If the longest presence area is the central area on the emotion map 300 (step S310; Yes), the processing unit 110 decreases the absolute values of all four personality correction values by 1 (step S311) and proceeds to step S312.
[0095] If the longest existence area is not the central area on the emotion map 300 (step S310; No), the processing unit 110 limits the range of the four personality correction values (step S312). Specifically, a personality correction value smaller than -5 is set to -5, and a personality correction value larger than +5 is set to +5. Then, the processing unit 110 ends the personality correction value adjustment process and proceeds to step S115 of the motion control process.
[0096] By the above-mentioned motion control process, a basic personality (basic personality data) is set for the simulated personality of the robot 200 during the first period in steps S113 and S201, and after the first period has elapsed, the personality value can be corrected without changing the basic personality in steps S112 and S209.
[0097] The personality during the first period corresponds to the emotion change data 122, that is, the speed of movement of the emotion data 121 on the emotion map 300. In other words, since the speed of emotion change is associated with the personality, it is an extremely natural way of expressing personality. Also, since the emotion change data 122 only changes in an increasing direction in step S113, the personality value can be considered to reflect past information (such as external stimuli received from the user during the first period). And, since all four emotion change data 122 can change in step S113, a personality that combines multiple personality traits can also be constructed.
[0098] After the first period has elapsed, the emotion change data 122 is fixed, and the basic personality is fixed. The correction value set in step S112 only increases or decreases by 1 depending on the longest presence area of the day, so the change in personality value due to the correction value is more gradual than the change during the first period. If the robot 200 is left alone, the longest presence area becomes the central area, and the correction value approaches 0, returning the basic personality.
[0099] 15, the personality correction value adjustment process (step S112) is performed after it is determined in step S110 that the date has changed, that is, every time a one-day period has passed. However, this period is not limited to one day, and the personality correction value adjustment process may be performed every time another period such as half a day or one week has passed. Also, instead of a fixed period such as one day, the personality correction value adjustment process may be performed every time the number of times the external stimulus has been acquired reaches a predetermined number (for example, 50 times).
[0100] In the personality correction value adjustment process (FIG. 17) described above, the personality correction value is adjusted based on the area in which emotion data 121 exists for the longest period on emotion map 300, but the adjustment method is not limited to this. For example, the number of times emotion data 121 exists in each of a plurality of areas on emotion map 300 may be counted per unit time, and when this number reaches a predetermined number, the personality correction value may be adjusted based on that area.
[0101] In the above-mentioned operation control process, in steps S110 and S111, whether or not to learn the emotion change data 122 (change and set the basic character data) is switched depending on whether or not the condition that the growth day data 126 is in the first period is satisfied. However, the condition for this switching is not limited to the condition that the growth day data 126 is in the first period, and it may be switched depending on whether or not a predetermined condition related to the pseudo growth degree of the robot 200 is satisfied.
[0102] For example, as the predetermined condition, instead of or together with (OR condition) the condition "the growth day data 126 is equal to or greater than a predetermined value", a condition "the largest value among the four personality values is equal to or greater than a predetermined value as growth degree data representing the simulated growth degree of the robot 200" may be used. In addition, this growth degree data may be set according to the number of days, the number of times an external stimulus is detected, the personality value, or a combination of these values (for example, the sum, average, etc. of these).
[0103] In the above-mentioned action selection process, the emotion data 121 may be referenced when selecting an action of the robot 200, and the value of the emotion data 121 may be reflected in the selection of the action. For example, a plurality of growth tables 123 may be prepared according to the value of the emotion data 121, and types of actions that express emotions richly may be set, and an action may be selected using the growth table 123 corresponding to the value of the emotion data 121 at that time, or the value of the action selection probability of each action recorded in the motion table 125 may be adjusted according to the value of the emotion data 121. This allows the robot 200 to perform actions that better reflect the current emotion.
[0104] Furthermore, if the determination in step S107 in FIG. 15 is Yes, in the movement selection process in step S106, a spontaneous movement such as a breathing movement or a movement associated with a personality is performed. In this case, the movement may be made according to the X value and the Y value of the emotion data 121.
[0105] In addition, since the Y value of the emotion data 121 corresponds to excitement in the positive direction and to lethargy in the negative direction, the volume of the cry output by the robot 200 may be changed according to the Y value. That is, the processing unit 110 may increase the volume of the cry output from the speaker 231 as the Y value of the emotion data 121 becomes larger as a positive value, and may decrease the volume of the cry output from the speaker 231 as the Y value becomes smaller as a negative value.
[0106] Furthermore, the growth table 123 may be prepared in a plurality of variations depending on the use of the robot 200 (for example, for aesthetic education of young children, for dialogue with the elderly, etc.). Furthermore, in order to change the use of the robot 200, the growth table 123 may be made downloadable from an external server or the like via the communication unit 130.
[0107] In the above-mentioned action selection process, the largest value among the four personality values is used as the growth value, but the growth value is not limited to this. For example, the growth value may be set based on the growth days data 126 (for example, the growth value may be set by dividing the growth days data 126 by a predetermined value (for example, 10) and discarding the decimal point). The personality value of the robot 200 left by the user is often small, and if the maximum personality value is set as the growth value, a personality action may not be selected. Even in such a case, if the growth value is set based on the growth days data 126, a personality action will be selected according to the number of days of growth, regardless of the frequency of care by the user. The growth value may also be set based on both the personality value and the growth days data 126 (for example, the growth value may be set by dividing the sum of the largest personality value and the growth days data 126 by a predetermined value and discarding the decimal point).
[0108] In the above embodiment, the personality value is set based on the emotion change data 122, but the method of setting the personality value is not limited to this method. For example, the personality value may be set directly from the external stimulus data, not based on the emotion change data 122. For example, a method is conceivable in which the personality value (active) is increased when the character is stroked, and the personality value (shy) is decreased when the character is hit. The personality value may also be set based on the emotion data 121. For example, a method is conceivable in which the personality value is set to 1 / 10 of the X value and the Y value of the emotion data 121.
[0109] According to the above-described motion control process, the robot 200 can be given a pseudo emotion (emotion data 121). Furthermore, by learning the emotion change data 122 that changes the emotion data 121 in response to an external stimulus, each robot 200 will show different emotion changes in response to the external stimulus, and as a result, each robot 200 can be given a pseudo personality (personality value). Furthermore, since personality is derived from the emotion change data 122, it is also possible to generate a clone robot having the same personality by copying the emotion change data 122. For example, if backup data of the emotion change data 122 is saved, even if the robot 200 breaks down, the robot 200 having the same personality can be reproduced by restoring the backup data.
[0110] As the growth value calculated based on the personality value increases, the variation of selectable actions becomes richer, and the robot 200 can express a richer variety of actions by pseudo-growth (increasing growth value). Furthermore, the robot 200 does not only perform the actions after growth as it progresses, but can select an action from all the actions it has performed before according to the action selection probability defined in the growth table 123. Therefore, even after the robot 200 has grown, the user can occasionally see the actions it performed when it was first purchased, which makes the user feel more affection for it.
[0111] Furthermore, the simulated growth of the robot 200 is limited to a first period (e.g., 50 days), and the emotion change data 122 (personality) thereafter is fixed, so it cannot be reset like other ordinary devices, and this gives the user the feeling as if he or she were interacting with a real, living pet.
[0112] Furthermore, even after the personality is fixed, the personality correction value changes based on the user's subsequent interaction with the robot 200, and the robot 200 behaves based on the personality value corrected by the personality correction value. Therefore, even after the virtual growth of the robot 200 is complete, the user can enjoy watching the robot 200's reactions change depending on the interaction. Also, if the robot 200 is left alone, the longest existence area on the emotion map 300 will be near the center, and the personality correction value will return to 0, so that the robot 200 can behave in a way that reflects its original personality after growth.
[0113] In addition, since the pseudo emotions are represented by a plurality of emotion data (X and Y in the emotion data 121) and the pseudo personality is represented by a plurality of emotion change data (DXP, DXM, DYP, and DYM in the emotion change data 122), complex emotions and personalities can be expressed.
[0114] The emotion change data 122 for deriving this pseudo personality is learned in response to each of a plurality of different types of external stimuli acquired by a plurality of sensors provided in the sensor unit 210, so that a wide variety of pseudo personalities can be generated depending on how the user interacts with the robot 200.
[0115] Next, the sleep function, alarm function, and co-sleeping function of the robot 200 will be described in order.
[0116] Since the robot 200 operates using a battery as a power source, energy saving control is necessary. In order to give the robot 200 a feeling of life, such as a pet, it is better to control the robot 200 so that it looks as if it is sleeping, rather than simply stopping its operation. Hereinafter, a control mode in which the robot 200 is controlled so that it looks as if it is sleeping is called a sleep control mode. The sleep control mode realizes a sleep function as a function in which the robot 200 looks as if it is sleeping. When some sleep condition is satisfied, such as the surroundings becoming dark, the robot 200 transitions to a sleep state by stopping the thread of the motion control process shown in FIG. 15, thereby suppressing power consumption. Then, when the robot 200 subsequently acquires a specific external stimulus (or the alarm time is reached), it resumes the thread of the motion control process that was stopped and transitions to a normal state. The normal state refers to a state in which all threads necessary for normal operation in the robot 200, such as the thread of the motion control process, are operating, and the robot periodically performs breathing actions and actions in response to external stimuli.
[0117] Basically, when the illuminance sensor detects that the condition that the surroundings have become dark (second sleep condition) is satisfied, the robot 200 enters a sleep control mode (shifts from the normal state to the sleep state) that suppresses power consumption (particularly the energy consumed by the drive unit 220 and the output unit 230). In order to ensure energy saving, once the robot 200 enters the sleep control mode, it does not shift from the sleep state to the normal state even if the surroundings become brighter.
[0118] In the normal sleep control mode of this embodiment, when the user holds the robot 200 with its head 204 facing up, strokes it, or calls it loudly, the robot 200 cancels the sleep control mode and transitions from the sleep state to the normal state. Note that an external stimulus that cancels the normal sleep control mode (here, the external stimuli "standing the robot with its head 204 facing up," "being stroked," or "hearing a loud voice") is also called a normal stimulus, and the normal sleep state is also called a second sleep state.
[0119] However, there may be situations where it is not desirable to transition from the sleep state to the normal state, such as when the battery of the robot 200 needs to be fully charged or when the user goes out with the robot 200. For such situations, the robot 200 also has a sleep control mode (hereinafter referred to as a "hard sleep control mode") that makes it difficult to transition to the normal state.
[0120] In this embodiment, when the first sleep condition is satisfied, the robot 200 enters the hard sleep control mode (transitions from the normal state to the hard sleep state). The first sleep condition is satisfied when either of the following two conditions is satisfied. (1) The surroundings became dark while charging. (2) When the robot 200 was being made to stand by the user (held with the head 204 facing up), the surroundings became dark. However, even if the surroundings are not actually dark, if the user covers the illuminance sensor 214 with his / her hand while charging or while the robot 200 is standing, the illuminance detected by the illuminance sensor 214 will decrease, and the robot 200 will determine that the first sleep condition is satisfied and enter the hard sleep control mode.
[0121] In the hard sleep control mode, even if the user strokes the robot 200 or calls out to it in a loud voice, the robot 200 does not transition to the normal state. However, in order to give the robot a feeling of life, when the processing unit 110 detects a predetermined specific external stimulus (in this embodiment, the external stimulus of being stroked), the processing unit 110 temporarily transitions to a quasi-sleep state, controls the driving unit 220 and the output unit 230, and can then return to the hard sleep state. For this reason, a plurality of levels (hereinafter referred to as "sleep levels") are prepared for the hard sleep control mode. In the quasi-sleep state, a first suppression mode is executed in which the driving unit 220 and the output unit 230 are controlled (in this embodiment, the driving unit 220 makes a sound of breathing and causes breathing) so that power consumption is suppressed more than in the normal state. In the hard sleep state, a second suppression mode is executed in which the driving unit 220 and the output unit 230 are controlled (in this embodiment, the driving unit 220 is stopped and no power is output from the output unit 230) so that power consumption is suppressed even more than in the quasi-sleep state.
[0122] Sleep level 1 is a control mode in which the robot loses a sense of life but consumes the least amount of power, and the robot 200 does not move at all until the hard sleep control mode is released.
[0123] The sleep level 2 is a mode in which, upon receiving a specific external stimulus, the driving unit 220 is not operated and only sounds are used to create a sense of life. In this embodiment, when the robot 200 is stroked by the user, the robot 200 transitions to a quasi-sleep state, outputs the sound of breathing from the speaker 231 for a predetermined time (for example, 5 seconds), and then returns to the hard sleep state. The quasi-sleep state refers to a state in which the robot 200 executes the first suppression mode (move temporarily or emit sound) in the hard sleep control mode to create a sense of life. In the quasi-sleep state (while the first suppression mode is being executed), the robot 200 temporarily moves or emits sound, but the thread of the motion control process shown in FIG. 15 is kept stopped, and continuous driving of the motor that consumes power, large movements, output of large sounds, etc. are not executed, so that motions in response to external stimuli and spontaneous motions are suppressed, and energy consumption by the driving unit 220 and the output unit 230 can be suppressed more than in the normal state.
[0124] The sleep level 3 is a mode in which the driving unit 220 is operated to give a more lifelike feeling when a specific external stimulus is received. In this embodiment, when the robot 200 is stroked by the user, the robot 200 goes into a quasi-sleep state for a predetermined time (e.g., 5 seconds), drives the driving unit 220, and performs a breathing motion, and then goes back to a hard sleep state.
[0125] In this way, even in the hard sleep control mode in which power consumption is suppressed, when the sleep level of the robot 200 is 2 or 3, if the robot 200 receives a specific external stimulus (also called a second stimulus) such as being stroked by the user, the robot 200 transitions to a quasi-sleep state, snores, and performs a breathing motion, so that the user can feel that the robot 200 is a real living thing. Then, when the quasi-sleep state continues for a predetermined time, the robot 200 returns from the quasi-sleep state to a hard sleep state, so that the state in which power consumption is suppressed can be continued. In this embodiment, the sound output in the quasi-sleep state is the sound of breathing, but other sounds such as breathing may be output. In addition to the breathing motion, the sound of breathing or the sound of breathing may be output in the quasi-sleep state.
[0126] Note that the method for canceling the hard sleep control mode can be set to any method, but in this embodiment, when the user holds the robot 200 in an upright position (holds the robot 200 with the head 204 facing up), the robot 200 cancels the hard sleep control mode and transitions to a normal state. Note that the external stimulus for canceling the hard sleep control mode (here, the external stimulus of "standing the robot with the head 204 facing up") is also referred to as a first stimulus, and the hard sleep state is also referred to as a first sleep state.
[0127] In the hard sleep control mode, the processing unit 110 executes a second suppression mode in which the driving unit 220 and the output unit 230 are controlled to suppress the power consumption of the battery more than in the first suppression mode while neither the specific external stimulus nor the first stimulus is detected (in this embodiment, the robot does not move at all and does not emit sound). Note that the second suppression mode is not limited to a complete stop, and the robot 200 may perform an action or output a sound that can suppress the power consumption of the battery more than when the first suppression mode is executed. The robot 200 can express an action according to the specific external stimulus in the first suppression mode, and therefore can further improve the feeling of life. In addition, the robot 200 can further suppress the energy consumption in the second suppression mode.
[0128] Next, a description will be given of the alarm function and the co-sleeping function of the robot 200. As shown in Fig. 1, the robot 200 has an appearance like a stuffed toy, so that the user can sleep with the robot 200 while holding it in his / her arms.
[0129] In this case, the robot 200 can wake up the user by operating the driving unit 220 without making a sound. The alarm sound of a normal alarm clock often annoys users, but it is considered that many users would not feel so uncomfortable if the robot 200, who is sleeping with the user, wakes them up by moving about.
[0130] The robot 200 provides such an alarm function. However, if the user unconsciously strokes the robot 200 while sleeping, the robot 200 may move and wake up the user. Therefore, the sleeping-along function is a function for stopping the operation of the robot 200 while the robot 200 is sleeping with the user. However, in this embodiment, the sleeping-along function is realized by executing a suppression mode (hard sleep control mode in this embodiment) that suppresses the energy consumed by the driving unit 220 and the output unit 230 of the robot 200, rather than simply stopping the operation of the robot 200. This makes it possible to both prevent the user from being woken up while sleeping and suppress power consumption.
[0131] Since the robot 200 does not have a display screen or the like, the alarm function and the co-sleeping function are set by the user using an application program on a smartphone connected via the communication unit 130 of the robot 200. An example of a setting screen for the alarm function and the co-sleeping function in the application program of the smartphone is shown in FIG.
[0132] As shown in FIG. 18, the user can input various settings for the alarm function and the sleep-to-sleep function to the robot 200 by inputting, from the smartphone screen 501, the alarm time, whether the alarm is on or off for each day of the week, the strength of the robot 200's movement when the alarm is sounded, whether the robot 200's cry when the alarm is sounded, the number of snoozes (0 is snooze off), the co-sleeping mode level (corresponding to the level (sleep level) of the hard sleep control mode), the co-sleeping start time (the time when the co-sleeping function starts; also called the sleep start time), etc., and sending these to the robot 200.
[0133] FIG. 18 shows an example of setting these setting data on one screen 501, but among these, alarm time, day of the week ON / OFF, alarm operation strength, cry ON / OFF, and snooze count are setting values related to the alarm function, and are therefore referred to as alarm setting data. Also, co-sleeping mode level and co-sleeping start time are setting values related to the co-sleeping function, and are therefore referred to as co-sleeping setting data. In the smartphone application program, the screen may be designed so that the setting screen for the alarm setting data and the setting screen for the co-sleeping setting data are separate screens. Note that the alarm operation refers to the operation of the robot 200 moving squirmingly by the driving unit 220 or making a cry through the speaker 231 when the alarm time (the time when the alarm is set) arrives.
[0134] Next, an alarm control process for realizing the alarm function of the robot 200 will be described with reference to the flowchart shown in Fig. 19. When the user turns on the power of the robot 200, this alarm control process is started in parallel with the above-mentioned operation control process, the sleep control process described later, and the like.
[0135] First, the processing unit 110 initializes various parameters (alarm parameters) related to the alarm function, such as the alarm time (step S401). Note that the alarm parameters may be stored in a flash memory of the storage unit 120 so that these values are not initialized every time the robot 200 is turned on.
[0136] Next, the processing unit 110 determines whether or not alarm setting data has been received from the smartphone via the communication unit 130 (step S402). If the alarm setting data has been received (step S402; Yes), the processing unit 110 sets alarm parameters based on the received alarm setting data (step S403) and proceeds to step S404.
[0137] If the alarm setting data has not been received (step S402; No), the processing unit 110 judges whether or not the alarm parameters have been set (step S404). If the alarm parameters have not been set (step S404; No), the processing unit 110 returns to step S402.
[0138] If the alarm parameters have been set (step S404; Yes), the processor 110 uses the clock function to determine whether the current time is the alarm time and whether the alarm is set to ON for today's day of the week (step S405). If the current time is not the alarm time or the alarm is not set to ON for today's day of the week (step S405; No), the process returns to step S402.
[0139] If the current time is the alarm time and the alarm is set to ON for today's day of the week (step S405; Yes), the processing unit 110 sets the number of snoozes set in the alarm parameters to the variable S and sets the snooze time (for example, 5 minutes after the alarm time) (step S406). Then, the processing unit 110 executes the alarm operation by controlling the driving unit 220 and the speaker 231 based on the values of the alarm operation strength and the sound ON / OFF set in the alarm parameters (step S407). Note that if the thread of the above-mentioned operation control process has been temporarily halted by the sleep control process described later, in step S407, the processing unit 110 also executes the process of resuming (Wake-up) the thread of the operation control process.
[0140] By executing the alarm action, the robot 200 moves squirmingly by the driving unit 220 and emits a cry from the speaker 231. This allows the user to wake up naturally without feeling uncomfortable. Furthermore, since the robot 200 returns to the normal state by restarting the action control process thread, the robot 200 resumes breathing action and reacts, for example, when the user strokes it. Therefore, even if the user is unable to wake up by the alarm action, the user can be woken up by the subsequent breathing action or natural reaction of the robot 200.
[0141] Then, the processing unit 110 judges whether or not an alarm stop operation has been performed (step S408). Any operation can be specified as the alarm stop operation, but in this embodiment, when the user lifts the head of the robot 200 and stands the robot 200 up, it is judged that the alarm stop operation has been performed.
[0142] If the user performs an alarm stop operation (step S408; Yes), the processing unit 110 stops the alarm operation in response to this alarm stop operation (step S409), and the process returns to step S402.
[0143] If the user has not performed an alarm stop operation (step S408; No), the processing unit 110 determines whether the value of the variable S, which sets the remaining number of snoozes, is 1 or more (step S410). If the value of the variable S is 0 (step S410; No), the process returns to step S402.
[0144] If the value of the variable S is 1 or more (step S410; Yes), the processing unit 110 judges whether the current time is the snooze time or not (step S411). If the current time is not the snooze time (step S411; No), the processing returns to step S408.
[0145] If it is the snooze time (step S411; Yes), the processing unit 110 decrements the value of the variable S by 1, updates the snooze time (for example, sets it to 5 minutes later) (step S412), and returns to step S407.
[0146] Next, a sleep control process for realizing the sleep control mode and co-sleeping function of the robot 200 will be described with reference to the flowchart shown in Fig. 20. When the user turns on the power of the robot 200, this sleep control process is started in parallel with the above-mentioned motion control process, alarm control process, etc.
[0147] The co-sleeping function in this embodiment is a function that, when the set co-sleeping start time arrives, assumes that the robot 200 is sleeping together with the user and executes the hard sleep control mode (suppression mode). As described above, the hard sleep control mode is executed even when the user covers the illuminance sensor 214 with his / her hand while the robot 200 is standing upright, so the user can also execute the co-sleeping function manually by this operation. That is, in this embodiment, the execution condition of the suppression mode is that the current time is the co-sleeping start time or the first sleep condition described above is satisfied. In addition, three sleep levels are prepared in the hard sleep control mode, and the sleep levels are set by setting the co-sleeping mode level.
[0148] When the sleep control process is started, first, the processing unit 110 initializes various parameters (hereinafter referred to as "sleep parameters") related to the sleep control mode, such as the level of the hard sleep control mode (sleep level), and various parameters (hereinafter referred to as "sleeping parameters") related to the co-sleeping function, such as the co-sleeping mode level and the co-sleeping start time (step S501). The initialized values are, for example, "Level 1" for the sleep level and co-sleeping mode level, and "Not set" for the co-sleeping start time. Note that these parameters may be stored in the flash memory of the storage unit 120 so that these values are not initialized each time the robot 200 is turned on.
[0149] Next, the processing unit 110 determines whether or not it has received co-sleeping setting data from the smartphone via the communication unit 130 (step S502). If the co-sleeping setting data has been received (step S502; Yes), the processing unit 110 sets co-sleeping parameters based on the received co-sleeping setting data (step S503) and proceeds to step S504. Note that in steps S502 and S503, the sleep parameters may also be received and set in the same way as the co-sleeping parameters. However, in this embodiment, the sleep level uses the same value as the co-sleeping mode level set in the co-sleeping setting data.
[0150] If no co-sleeping setting data is received (step S502; No), the processing unit 110 judges whether the current time is the co-sleeping start time set in step S503 (step S504). If no co-sleeping setting data has been received in the past, the co-sleeping start time will be "not set", and the judgment in step S504 will never be Yes. If the current time is the co-sleeping start time (step S504; Yes), the processing unit 110 judges that the execution conditions for the co-sleeping function are met, and executes hard sleep processing (step S505) to execute the co-sleeping function. In this way, the execution conditions for the co-sleeping function are judged based on the time, so the robot 200 can reliably execute the co-sleeping function at the co-sleeping start time. Then, the process returns to step S502.
[0151] If the current time is not the co-sleeping start time (step S504; No), the processing unit 110 determines whether the brightness detected by the illuminance sensor 214 is darker than the reference illuminance (step S506). If the illuminance sensor 214 detects brightness equal to or greater than the reference illuminance (step S506; No), the process returns to step S502.
[0152] If the illuminance sensor 214 detects only a brightness less than the reference illuminance (step S506; Yes), the processing unit 110 judges whether the battery 253 is charging or the head 204 is lifted (step S507). If the battery 253 is charging or the head 204 is lifted (step S507; Yes), the battery 253 is charging or the head 204 is lifted (step S507; Yes) and only a brightness less than the reference illuminance is detected (step S506; Yes), so the processing unit 110 judges that the first sleep condition is satisfied, executes a hard sleep process described later (step S508), and returns to step S502.
[0153] If the battery 253 is not charging and the head 204 is not lifted (step S507; No), the processing unit 110 determines that the second sleep condition is met because only brightness less than the reference illuminance is detected (step S506; Yes), and suspends the thread of the above-mentioned motion control process (step S509). As a result, the robot 200 transitions to the second sleep state and stops normal operations (stopping the drive unit 220 and stopping sound output from the speaker 231), thereby reducing power consumption.
[0154] Then, the processing unit 110 judges whether the head 204 has been lifted (step S510). If the head 204 has been lifted (step S510; Yes), the processing unit 110 resumes the thread of the motion control process that was temporarily stopped in step S509 (step S511), and returns to step S502.
[0155] If the head 204 is not raised (step S510; No), the processing unit 110 judges whether the robot 200 has been stroked (step S512). If the robot 200 has been stroked (step S512; Yes), the process proceeds to step S511.
[0156] If the user is not being stroked (step S512; No), the processing unit 110 judges whether or not a loud sound is detected (step S513). If a loud sound is detected (step S513; Yes), the processing unit 110 proceeds to step S511.
[0157] If no loud sound is detected (step S513; No), the process returns to step S510.
[0158] Next, the hard sleep processing executed in steps S505 and S508 in the above-mentioned processing will be described with reference to FIG.
[0159] First, the processing unit 110 suspends the thread of the above-mentioned motion control process (step S521). As a result, the robot 200 transitions to a hard sleep state and stops normal operations (stopping the driving unit 220 and stopping sound output from the speaker 231), so that power consumption can be reduced. In this embodiment, since some of the conditions for starting the hard sleep process and the conditions for ending the hard sleep process are common (the head 204 is lifted), the processing unit 110 may perform processing or determination for not ending the hard sleep process immediately after starting the hard sleep process, although this is omitted in FIG. 21. For example, the processing unit 110 may wait until the head 204 is not lifted between steps S521 and S522 in FIG. 21. In addition, the determination condition for ending the hard sleep state (steps S523, S528, and S531 in FIG. 21) may be "the illuminance sensor 214 detects brightness equal to or greater than the reference illuminance, and the head 204 is lifted."
[0160] Next, the processing unit 110 determines whether the sleep level set by the user (in this embodiment, the same as the co-sleeping mode level set in step S503) is 1 as shown in Fig. 18 (step S522). If the sleep level is 1 (step S522; Yes), the processing unit 110 determines whether the head 204 has been lifted (step S523). If the head 204 has not been lifted (step S523; No), the process returns to step S523.
[0161] If the head 204 is lifted (step S523; Yes), the processing unit 110 resumes the thread of the motion control process paused in step S521 (step S524), ends the hard sleep process, and returns to step S502 of the sleep control process.
[0162] On the other hand, if the sleep level is not 1 in step S522 (step S522; No), the processing unit 110 judges whether the sleep level is 2 or not (step S525). If the sleep level is 2 (step S525; Yes), the processing unit 110 judges whether the robot 200 has been stroked (step S526). If the robot 200 has not been stroked (step S526; No), the process proceeds to step S528. If the robot 200 has been stroked (step S526; Yes), the processing unit 110 transitions to a semi-sleep state, outputs the sound of breathing from the speaker 231, and returns to a hard sleep state (step S527). At this time, the thread of the motion control process remains stopped, and the sound of breathing is only output, so that power consumption can be reduced more than in the normal state in step S527.
[0163] Then, the processing unit 110 judges whether the head 204 is lifted (step S528). If the head 204 is not lifted (step S528; No), the processing unit 110 returns to step S526. If the head 204 is lifted (step S528; Yes), the processing unit 110 proceeds to step S524.
[0164] On the other hand, if the sleep level is not 2 in step S525 (step S525; No), the sleep level is 3, and the processing unit 110 judges whether the robot 200 has been stroked (step S529). If the robot 200 has not been stroked (step S529; No), the process proceeds to step S531. If the robot 200 has been stroked (step S529; Yes), the processing unit 110 transitions to a quasi-sleep state, controls the driving unit 220 for a predetermined time (for example, one minute) to cause the robot 200 to perform a breathing motion, and returns to a hard sleep state (step S530). At this time, the thread of the motion control process remains stopped, and the movement of the driving unit 220 in the breathing motion is smaller than that in the normal state, so that in step S530, the breathing motion is performed, but power consumption can be reduced more than in the normal state.
[0165] Then, the processing unit 110 judges whether the head 204 is lifted (step S531). If the head 204 is not lifted (step S531; No), the processing returns to step S529. If the head 204 is lifted (step S531; Yes), the processing unit 110 proceeds to step S524.
[0166] By the alarm control process described above, the robot 200 can wake up the user naturally by its movement without outputting an alarm sound. In addition, by the sleep control process, the robot 200 enters the hard sleep control mode after the co-sleeping start time, so that the robot 200 does not perform any unnecessary actions that may wake up the user, and the user can sleep with the robot 200 without worry. In the sleep control mode, the robot 200 stops the action control process shown in FIG. 15, so that power consumption can be reduced. Furthermore, in the sleep control process, by providing a hard sleep control mode that is difficult to transition to the normal state in addition to the normal sleep control mode, the power consumption of the robot 200 can be reduced more reliably depending on the situation, such as during charging or when the robot 200 is out.
[0167] In the above-mentioned sleep control process, in step S504, the processing unit 110 determines whether the current time is the sleep-to-sleeping start time, and if it is the sleep-to-sleeping start time, it determines that the execution condition of the sleep-to-sleeping function is established, and starts the sleep-to-sleeping function (hard sleep process). However, the timing to start the sleep-to-sleeping function is not limited to the sleep-to-sleeping start time. For example, instead of or in addition to the sleep-to-sleeping start time, the period during which the user sleeps may be set as the "sleeping-to-sleeping period" as the sleep-to-sleeping setting data. Then, the processing unit 110 may determine that the execution condition of the sleep-to-sleeping function is established if the current time is included in the "sleeping-to-sleeping period". Furthermore, the execution condition of the sleep-to-sleeping function is not limited to the condition based on the sleep-to-sleeping setting data such as the sleep-to-sleeping start time, but any condition related to the user's sleep may be set.
[0168] For example, an example will be described in which the user wears a bioinformation detection device (for example, a wristwatch with a built-in biosensor) equipped with a biosensor (a sensor that detects the user's bioinformation such as pulse). In this case, in step S504, the processing unit 110 may acquire a signal from the bioinformation detection device, and when it determines that the user is asleep based on the acquired signal, it may determine that the execution condition for the co-sleeping function is established and start the co-sleeping function. Note that, when the bioinformation detection device determines whether the user is asleep based on the bioinformation, the signal from the bioinformation detection device may indicate either a value of "sleeping" or "not sleeping". In this example, the user needs to wear the bioinformation detection device, but even if the co-sleeping start time is not set, or even if the user starts co-sleeping with the robot 200 at a time different from the co-sleeping start time, the co-sleeping function can be started.
[0169] Also, even if the user does not wear the biological information detection device, the sleep-along function may be started when the microphone 213 detects the user's breathing. In this case, in step S504, the processing unit 110 analyzes the sound data detected by the microphone 213, and if it is determined as a result of the analysis that the sound is the user's breathing, it may determine that the execution condition for the sleep-along function is established and start the sleep-along function. Note that examples of a method for analyzing the sound data detected by the microphone 213 and determining whether the sound is the user's breathing include a method of using a classifier that has been machine-learned using a large amount of breathing sound data, and a method of comparing the waveform and frequency components of the detected sound with the waveform and frequency components of general breathing sounds.
[0170] Also, for example, the robot 200 may be provided with an image acquisition unit such as a camera equipped with a CCD (Charge-Coupled Device) image sensor, and the processing unit 110 may perform image analysis on the image acquired by the image acquisition unit. If the image analysis results in a determination that the user's sleeping face or sleeping figure is captured in the image, the processing unit may determine that the execution condition for the sleep-along function is established and start the sleep-along function. In this case, the image acquisition unit is preferably a wide-angle camera (fish-eye camera, omnidirectional camera) with an angle of view of more than 60 degrees so that the user's sleeping face or sleeping figure can be captured. In addition, examples of methods for determining whether the user's sleeping face or sleeping figure is captured in the image acquired by the image acquisition unit include a method of determining using a classifier that has been machine-learned using a large amount of image data of the sleeping face or sleeping figure, and a method of determining by template matching using a template image of a general sleeping face or sleeping figure.
[0171] Also, for example, the co-sleeping function may be started when the user issues a command to sleep together (for example, voices such as "Let's sleep together" or "Go to sleep"). In this case, in step S504, the processing unit 110 performs voice recognition on the voice data detected by the microphone 213, and if the recognition result is a command to sleep together, it may determine that the execution conditions for the co-sleeping function are met and start the co-sleeping function. Also, based on the detection results of the microphone 213 and the illuminance sensor 214, if the surroundings are dark and a silent state continues for a reference time for sleeping together (for example, 10 minutes), it may be determined that the execution conditions for the co-sleeping function are met and start the co-sleeping function. In this way, it becomes possible to execute the co-sleeping function even if the start time for sleeping together has not been set.
[0172] In the above embodiment, the predetermined specific external stimulus is "being stroked", and when the user strokes the robot 200, the processing unit 110 determines that the external stimulus is the specific external stimulus, but the specific external stimulus is not limited to being stroked. For example, the robot 200 may be provided with an image acquisition unit such as a CCD image sensor, and when the processing unit 110 recognizes an image acquired by the image acquisition unit and recognizes that the user has directed his or her gaze toward the robot 200, the processing unit 110 may determine that the external stimulus is the specific external stimulus.
[0173] As described above, even in the suppression mode in which the power consumption of the battery is suppressed, the robot 200 can execute the first suppression mode in which the robot 200 outputs an action or a sound while suppressing the power consumption in response to a specific external stimulus, and therefore can be controlled to operate in a detailed response to the external stimulus. The robot 200 can execute the sleep-along function, which is a function of sleeping together with the user without disturbing the user's sleep, by executing the suppression mode according to the time when the user goes to sleep. The robot 200 can execute the sleep-along function more reliably by executing the suppression mode when it is determined that the user is sleeping by the biosensor, the microphone 213, the camera, etc. When the robot 200 is stroked by the user, the robot 200 makes a breathing motion and thus the user can feel the robot 200 as if it were a real living thing. The robot 200 can also perform an alarm operation at the alarm time, causing the driving unit 220 to move squirmingly and making a cry through the speaker 231. This allows the user to wake up naturally without feeling uncomfortable.
[0174] Next, the power supply control of the robot 200 will be described. As described above, the robot 200 includes a power supply control unit 250, which charges the battery 253 and controls the ON / OFF of the power supply. Since the power supply control unit 250 can control the ON / OFF of the power supply, the robot 200 can turn the power on and off by itself, even if the user does not use a power switch. The power supply control unit 250 can also be considered as a power supply control device that controls the power supply of the robot 200.
[0175] For example, the robot 200 automatically turns off the power when the battery voltage falls below a predetermined voltage (operation reference voltage), and automatically turns on the power when the battery voltage reaches or exceeds the predetermined voltage (start-up reference voltage). If the battery voltage is equal to or higher than the predetermined voltage (operation reference voltage) when the power is on, the power remains on. This makes it possible to improve the feeling of life compared to other devices that require the user to manually turn the power on and off.
[0176] However, there may be cases where the user wants to manually turn off the power of the robot 200, for example when charging the battery as quickly as possible. In such a case, it would be inconvenient if the power of the robot 200 were to be automatically turned on. Therefore, in such a case, the power supply control unit 250 also performs control so that the power of the robot 200 is not automatically turned on.
[0177] As shown in FIG. 9, the power supply control unit 250 includes a sub-microcomputer 251, a charging IC (Integrated Circuit) 252, a battery 253, a power supply control IC 254, and a wireless power supply receiving circuit 255.
[0178] The sub-microcomputer 251 is a microcontroller with a built-in low power consumption processor, and includes an AD (Analog-to-Digital) converter 2511 that monitors the output voltage of the battery 253, an input port 2512 that monitors a charging signal indicating whether or not the battery 253 is being charged by the charging IC 252, a power supply terminal 2513 for the sub-microcomputer 251 itself, an input port 2514 that monitors the pressing status of the power switch 241 of the robot 200, an output port 2515 that outputs an operation restriction signal to the processing unit 110, and an output port 2516 that outputs a power supply control signal to the power supply control IC 254 for controlling the ON / OFF of the power supplied to the main functional unit 290.
[0179] The charging IC 252 is an IC that receives power from the wireless power supply receiving circuit 255 and performs control for charging the battery 253. The charging IC 252 outputs to the sub-microcomputer 251 a charging signal indicating whether the battery 253 is being charged or not.
[0180] The battery 253 is a rechargeable secondary battery, and supplies the power required for the operation of the robot 200.
[0181] The power supply control IC 254 is an IC that controls whether or not power from the battery 253 is supplied to the main function unit 290 of the robot 200. It has an input port 2541 that receives a power supply control signal from the sub-microcomputer 251, and supplies or stops the supply of power to the main function unit 290 depending on whether the power supply control signal is ON or OFF.
[0182] The wireless power supply receiving circuit 255 receives power from an external wireless charging device 256 by electromagnetic induction, and supplies the received power to the charging IC 252 .
[0183] The power switch 241 is a switch for turning on / off the power of the robot 200. Even when the power of the robot 200 is turned off, power is supplied to the power supply control unit 250 in order to charge the battery 253 and automatically turn on the power of the robot 200 after charging is completed. For this reason, from the viewpoint of power supply, the robot 200 can be considered to be composed of two units: the power supply control unit 250 to which power is always supplied, and the main function unit 290 whose power ON / OFF is controlled by the power supply control unit 250.
[0184] The main functional unit 290 is composed of the parts constituting the robot 200 other than the power supply control unit 250. In order to show the relationship between the power supply control unit 250 and the main functional unit 290, Fig. 9 shows a power supply terminal 2901 to which power is supplied from the power supply control unit 250, and an input port 1101 of the processing unit 110 that receives an operation restriction signal transmitted from the sub-microcomputer 251.
[0185] Next, the power supply control process executed by the sub-microcomputer 251 of the power supply control unit 250 will be described with reference to Fig. 22. This process starts when the sub-microcomputer 251 is started up (when the voltage of the battery 253 reaches or exceeds the voltage at which the sub-microcomputer 251 can be started up). Note that this process uses a manual OFF flag variable that indicates whether or not the user has manually pressed and held down the power switch 241 to turn off the power supply of the robot 200.
[0186] First, the sub-microcomputer 251 outputs a power control signal to the power control IC 254 to instruct the power supply to be turned off, thereby turning off the power supply to the main functional unit 290 (step S601). Then, the sub-microcomputer 251 outputs an operation restriction signal to the processing unit 110 to instruct the operation restriction to be turned off (step S602). Then, the sub-microcomputer 251 initializes a manual OFF flag variable to 0 (step S603).
[0187] Next, the sub-microcomputer 251 determines whether or not the power supply to the main function unit 290 is ON (step S604). If the power supply is ON (step S604; Yes), the sub-microcomputer 251 determines whether or not the battery 253 is being charged (step S605). If the battery 253 is not being charged (step S605; No), the sub-microcomputer 251 outputs an operation restriction signal to the processing unit 110 to instruct it to turn off the operation restriction (step S606), and proceeds to step S608.
[0188] If the battery 253 is being charged (step S605; Yes), the sub-microcomputer 251 outputs an operation restriction signal to the processing unit 110 to instruct the operation restriction to be ON (step S607).
[0189] Then, the sub-microcomputer 251 judges whether the power switch 241 has been pressed and held down (step S608). If the power switch 241 has been pressed and held down (step S608; Yes), the sub-microcomputer 251 sets the manual OFF flag variable to 1 (step S609) and proceeds to step S611.
[0190] If the power switch 241 has not been pressed long (step S608; No), the sub-microcomputer 251 determines whether the voltage of the battery 253 is equal to or higher than the operating reference voltage (step S610). The operating reference voltage is a voltage considered to be the minimum voltage necessary for the robot 200 to operate normally, and is, for example, 75% of the voltage of the battery 253 when it is fully charged. The operating reference voltage is also called a second reference voltage.
[0191] If the voltage of the battery 253 is equal to or higher than the operating reference voltage (step S610; Yes), the process proceeds to step S604.
[0192] If the voltage of the battery 253 is less than the operating reference voltage (step S610; No), the sub-microcomputer 251 outputs a power control signal to the power control IC 254 to instruct it to turn off the power supply to the main function unit 290 (step S611), and returns to step S604. In this way, when the voltage of the battery 253 falls below the operating reference voltage, the power control unit 250 automatically turns off the power supply to the robot 200, so that it is possible to prevent the operation of the robot 200 from becoming unstable and the battery 253 from being completely discharged.
[0193] On the other hand, if the power supply to the main functional unit 290 is not ON in step S604 (step S604; No), the sub-microcomputer 251 determines whether the power switch 241 has been pressed (step S612). If the power switch 241 has been pressed (step S612; Yes), the process proceeds to step S615.
[0194] If the power switch 241 is not pressed (step S612; No), the sub-microcomputer 251 judges whether the battery 253 is being charged (step S613). If the battery 253 is not being charged (step S613; No), the process returns to step S604.
[0195] If the battery 253 is being charged (step S613; Yes), the sub-microcomputer 251 determines whether or not the manual OFF flag is 1 (step S614). If the manual OFF flag is 1 (step S614; Yes), the process returns to step S604.
[0196] If the manual OFF flag variable is not 1 (step S614; No), the sub-microcomputer 251 judges whether the voltage of the battery 253 is equal to or higher than the start reference voltage (step S615). The start reference voltage is a voltage at which it is determined that the power of the robot 200 may be automatically turned on during charging, and is, for example, a voltage that is 95% of the voltage when the battery 253 is fully charged. The start reference voltage is also called a first reference voltage.
[0197] If the voltage of the battery 253 is less than the start reference voltage (step S615; No), the process returns to step S604.
[0198] If the voltage of the battery 253 is equal to or higher than the start reference voltage (step S615; Yes), the sub-microcomputer 251 outputs a power control signal to the power control IC 254 to instruct the power to be turned on, thereby turning on the power supply to the main function unit 290 (step S616). In this way, when the voltage of the battery 253 is equal to or higher than the start reference voltage, the power control unit 250 automatically turns on the power of the robot 200, so that the user does not need to operate the power switch 241, and the lifelike feeling of the robot 200 can be improved.
[0199] Next, the sub-microcomputer 251 outputs an operation restriction signal instructing the processing unit 110 to turn on the operation restriction (step S617). Then, the sub-microcomputer 251 sets the manual OFF flag variable to 0 (step S618) and returns to step S604.
[0200] By the above power supply control process, the robot 200 can not only automatically turn the power on and off, but also, when the user manually turns the power off, the manual off flag variable becomes 1, so that the process in step S614 can prevent the power from being automatically turned on during charging. As a result, if the user wants to shorten the charging time, the robot 200 can keep the power off during charging by manually turning the power off, thereby shortening the charging time.
[0201] As can be seen from the power supply control process described above, the sub-microcomputer 251 can determine, by referring to the manual OFF flag variable, whether the power supply to the robot 200 was cut off due to a user operation (the user manually turning off the power) (manual OFF flag is 1) or due to some other power cut-off cause (such as the power being turned off due to an event such as the voltage of the battery 253 falling below the operating reference voltage) (manual OFF flag is 0).
[0202] During charging, a signal to turn on the movement restriction is sent to the processing unit 110, thereby preventing the robot 200 from moving during charging, which would prevent normal charging from being performed.
[0203] Specifically, when the motion restriction is turned ON, the following two motion restrictions are implemented. The first motion restriction is a motion restriction to prevent the robot 200 from moving due to the momentum of the motor motion, causing the wireless power supply receiving circuit 255 and the wireless charging device 256 to become separated. Specifically, in this embodiment, the motion angles of the twist motor 221 and the up / down motor 222 are limited to 50% of the motion angles defined in the motion table.
[0204] The second operation restriction is an operation restriction for preventing the robot 200 from floating away from the wireless charging device 256, which causes the wireless power supply receiving circuit 255 to become separated from the wireless charging device 256. Specifically, in this embodiment, the angle of the twist motor 221 is fixed to 0 degrees, and the angle of the up-down motor 222 is limited to a range from 0 degrees to +30 degrees.
[0205] Even when the motion restriction is OFF, the angle of each motor is restricted due to structural restrictions of the robot 200 in order to prevent accidents such as the head 204 and the torso 206 colliding with each other or fingers getting caught between the head 204 and the torso 206. Specifically, in this embodiment, the angle of the twist motor 221 is restricted to the range of -90 degrees to +90 degrees, and the angle of the up / down motor 222 is restricted to the range of -60 degrees to +60 degrees.
[0206] For example, in the case of "spontaneous movement 0-0 (breathing movement)" shown in Figure 14, when movement restriction is ON, the rotation angle of each motor is restricted so that the angle of the up / down motor 222 after 750 milliseconds is 15 degrees, and the angle of the up / down motor after 800 milliseconds is 12 degrees.
[0207] The motor control process including such operation restrictions will be described with reference to Fig. 23. This process is executed when the processing unit 110 controls the driving unit 220 in step S208 of the operation selection process, step S407 of the alarm control process, or step S530 of the hard sleep process described above.
[0208] First, the processing unit 110 performs an initialization process for motor control (step S701). For example, the angles of the twist motor 221 and the up-down motor 222 are returned to the reference angle (0 degrees) as necessary.
[0209] Next, the processing unit 110 judges whether the operation restriction is ON or not (step S702). Note that the processing unit 110 can obtain whether the operation restriction is ON or OFF from the above-mentioned input port 1101 shown in FIG.
[0210] If the motion restriction is not ON (step S702; No), the processing unit 110 sets the motion range to the value when the motion restriction is OFF (step S703). Specifically, the angle of the twist motor 221 is limited to the range of -90 degrees to +90 degrees, and the angle of the up-down motor 222 is limited to the range of -60 degrees to +60 degrees.
[0211] If the motion restriction is ON (step S702; Yes), the processing unit 110 sets the value when the motion restriction is ON as the motion range (step S704). Specifically, the angle of the twist motor 221 is limited to 0 degrees, and the angle of the up / down motor 222 is limited to the range from 0 degrees to +30 degrees.
[0212] Then, the processing unit 110 reads one row of data from the motion table 125, and obtains the operation time, the operation angle of the twist motor 221, and the operation angle of the up-down motor 222 (step S705).
[0213] Then, the processing unit 110 again determines whether the operation limit is ON or not (step S706). If the operation limit is ON (step S706; Yes), the processing unit 110 limits the value of the operation angle acquired in step S705 to 50% (step S707), and proceeds to step S708.
[0214] If the movement restriction is OFF (step S706; No), the processing unit 110 restricts the movement angle to within the movement range set in step S703 or step S704 (step S708).
[0215] Then, the processing unit 110 sets the operation angles determined in step S708 to the twist motor 221 and the up-down motor 222, respectively, to start the operation of the motors (step S709).
[0216] Then, the processing unit 110 determines whether or not the motion time read from the motion table 125 in step S705 has elapsed (step S710). If the motion time has not elapsed (step S710; No), the processing unit 110 returns to step S710 and waits for the motion time to elapse.
[0217] If the operation time has elapsed (step S710; Yes), the processing unit 110 judges whether or not reading of the motion table 125 has been completed (step S711). If reading of the motion table 125 has not been completed (step S711; No), the processing unit 110 returns to step S705. If reading of the motion table 125 has been completed (step S711; Yes), the processing unit 110 ends the motor control process.
[0218] By the above motor control process, the robot 200 can safely control the twist motor 221 and the up / down motor 222 regardless of the values set in the motion table 125. In addition, by limiting the movement during charging, the robot 200 can be prevented from moving or floating away from the wireless charging device 256, and wireless charging can be performed stably.
[0219] (Modification) The present invention is not limited to the above-described embodiment, and various modifications and applications are possible. For example, for a user who thinks that it is better not to correct the personality of the robot 200 after the growth of the robot 200 is completed, step S112 of the motion control process may be omitted, and the personality value may be calculated without correction in step S201 of the motion selection process. In this way, the personality of the robot 200 can be completely fixed after the growth of the robot 200 is completed.
[0220] In addition, in the above-mentioned motion table 125, the operation (operation time and operation angle) and voice data of the driving unit 220 of the robot 200 are set, but only the operation of the driving unit 220 or only the voice data may be set. Also, control other than the operation and voice data of the driving unit 220 may be set. For example, when the output unit 230 of the robot 200 is provided with an LED, control of the color and brightness of the LED to be lit may be considered as the control target controlled by the processing unit 110. At least one of the driving unit 220 and the output unit 230 may be included as the controlled unit controlled by the processing unit 110, and the output unit 230 may be a sound output unit that outputs only sound, or may be an LED that outputs only light.
[0221] Furthermore, in the above embodiment, the size of emotion map 300 is expanded by 2 for both the maximum and minimum values of emotion map 300 each time the number of days of simulated growth of robot 200 increases by one day during the first period. However, the expansion of the size of emotion map 300 does not have to be performed evenly in this manner. For example, the way in which emotion map 300 is expanded may be changed depending on the way emotion data 121 changes.
[0222] To change the way emotion map 300 is expanded depending on how emotion data 121 changes, for example, the following process may be performed in step S114 of the motion control process (FIG. 15). If the value of emotion data 121 is set to the maximum value of emotion map 300 even once in step S105 during a certain day, then the maximum value of emotion map 300 is increased by 3 in the following step S114. If the value of emotion data 121 never reaches the maximum value of emotion map 300 in step S105, then the maximum value of emotion map 300 is increased by 1 in the following step S114.
[0223] Similarly, for the minimum value of emotion map 300, if the value of emotion data 121 is set to the minimum value of emotion map 300 even once on that day, the minimum value of emotion map 300 is decreased by 3, and if the value of emotion data 121 does not reach the minimum value of emotion map 300 even once, the minimum value of emotion map 300 is decreased by 1. In this way, by changing the way emotion map 300 is expanded, the settable range of emotion data 121 is learned in response to external stimuli.
[0224] In the above embodiment and modified example, the emotion map 300 is always expanded during the first period, but the change in the range of the emotion map 300 is not limited to expansion. For example, the range of the emotion map 300 may be reduced for the direction of an emotion that rarely occurs in response to an external stimulus.
[0225] In the above embodiment, the robot 200 is configured to have the device control device 100 built in, but the device control device 100 does not necessarily have to be built in the robot 200. For example, as shown in FIG. 24, the device control device 101 may be configured as a separate device (e.g., a server) without being built in the robot 209. In this modification, the robot 209 also includes a processing unit 260 and a communication unit 270, and is configured so that the communication unit 130 and the communication unit 270 can transmit and receive data to and from each other. The processing unit 110 acquires an external stimulus detected by the sensor unit 210 and controls the drive unit 220 and the output unit 230 via the communication unit 130 and the communication unit 270.
[0226] In this way, when the device control device 101 and the robot 209 are configured as separate devices, the robot 209 may be controlled by the processing unit 260 as necessary. For example, simple operations are controlled by the processing unit 260, and complex operations are controlled by the processing unit 110 via the communication unit 270.
[0227] In the above embodiment, the device control device 100, 101 is a control device in which the device to be controlled is the robot 200, 209, but the device to be controlled is not limited to the robot 200, 209. The device to be controlled may be, for example, a wristwatch. For example, if the device to be controlled is a wristwatch capable of outputting voice and equipped with an acceleration sensor, an external stimulus may be an impact applied to the wristwatch detected by the acceleration sensor. The motion table 125 may record voice data to be output in response to the external stimulus. The emotion data 121 and emotion change data 122 may be updated in response to the external stimulus, and the voice data set in the motion table 125 may be output based on the detected external stimulus and the emotion change data 122 (personality) at that time.
[0228] In this way, the watch will develop a personality (pseudo-characteristic) depending on how the user handles it. In other words, even if two watches have the same model number, if the user handles them carefully, the watch will have a cheerful personality, but if the user handles them roughly, the watch will have a shy personality.
[0229] In this way, the device control devices 100 and 101 can be applied to various devices, not just robots. By applying the device to a device, the device can be endowed with pseudo-emotions and personalities, and the user can feel as if he or she is nurturing the device in a pseudo manner.
[0230] In the above-described embodiment, the operation program executed by the CPU of the processing unit 110 is stored in advance in the ROM or the like of the storage unit 120. However, the present invention is not limited to this, and an operation program for executing the above-described various processes may be implemented in an existing general-purpose computer or the like to function as a device equivalent to the device control devices 100, 101 of the devices according to the above-described embodiment.
[0231] Such programs may be provided in any manner; for example, they may be stored on a computer-readable recording medium (such as a flexible disk, a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disc)-ROM, an MO (Magneto-Optical Disc), a memory card, a USB memory, etc.) and distributed, or the programs may be stored in storage on a network such as the Internet and provided by downloading them.
[0232] Furthermore, when the above-mentioned processing is performed by sharing between an OS (Operating System) and an application program, or by cooperation between the OS and the application program, only the application program may be stored in a recording medium or storage. It is also possible to superimpose the program on a carrier wave and distribute it over a network. For example, the above-mentioned program may be posted on a bulletin board system (BBS) on a network and distributed over the network. The above-mentioned processing may be performed by starting up this program and executing it under the control of the OS in the same way as other application programs.
[0233] In addition, the processing units 110 and 260 may be configured by any processor alone, such as a single processor, a multiprocessor, or a multicore processor, or may be configured by combining any of these processors with a processing circuit, such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).
[0234] The present invention allows various embodiments and modifications without departing from the broad spirit and scope of the present invention. The above-described embodiments are for the purpose of explaining the present invention and do not limit the scope of the present invention. That is, the scope of the present invention is indicated by the claims, not the embodiments. Various modifications made within the scope of the claims and the scope of the invention equivalent thereto are considered to be within the scope of the present invention. The invention described in the original claims of this application is appended below.
[0235] (Appendix 1) Acquire external stimuli acting on the machine from the outside, transitioning to a first sleep state when the acquired external stimulus is an external stimulus that satisfies a first sleep condition; transitioning from the first sleep state to a normal state when the external stimulus acquired after transitioning to the first sleep state is a first stimulus; when the external stimulus acquired after transitioning to the first sleep state is a second stimulus different from the first stimulus, transitioning from the first sleep state to a semi-sleep state, and when the semi-sleep state continues for a predetermined time, returning from the semi-sleep state to the first sleep state; A processing unit that executes control; Equipment comprising:
[0236] (Appendix 2) The processing unit includes: transitioning to a second sleep state when the acquired external stimulus is an external stimulus that does not satisfy the first sleep condition but satisfies a second sleep condition; transitioning from the second sleep state to the normal state not only when the external stimulus acquired after transitioning to the second sleep state is the first stimulus but also when the external stimulus is the second stimulus; Execute control, 1. The device described in Appendix 1.
[0237] (Appendix 3) A controlled unit including at least one of a driving unit that drives a movable unit to express a movement and a sound output unit that outputs a sound, The processing unit includes: In the first sleep state and the second sleep state, in order to reduce power consumption consumed by the controlled unit, the movable unit is stopped and sound output from the sound output unit is stopped. 2. The device as described in Appendix 2.
[0238] (Appendix 4) The processing unit includes: In the quasi-sleep state, the controlled unit is controlled so as to reduce power consumption by the controlled unit as compared to the normal state. 1. The device described in Appendix 3.
[0239] (Appendix 5) The processing unit includes: In the quasi-sleep state, the controlled unit is controlled to express a movement representing breathing or to output a sound representing breathing. 1. The device described in Appendix 4.
[0240] (Appendix 6) Acquire external stimuli acting on the device from the outside, transitioning to a first sleep state when the acquired external stimulus is an external stimulus that satisfies a first sleep condition; transitioning from the first sleep state to a normal state when the external stimulus acquired after transitioning to the first sleep state is a first stimulus; when the external stimulus acquired after transitioning to the first sleep state is a second stimulus different from the first stimulus, transitioning from the first sleep state to a semi-sleep state, and when the semi-sleep state continues for a predetermined time, returning from the semi-sleep state to the first sleep state; How to control the device.
[0241] (Appendix 7) On the computer, Acquire external stimuli acting on the device from the outside, transitioning to a first sleep state when the acquired external stimulus is an external stimulus that satisfies a first sleep condition; transitioning from the first sleep state to a normal state when the external stimulus acquired after transitioning to the first sleep state is a first stimulus; when the external stimulus acquired after transitioning to the first sleep state is a second stimulus different from the first stimulus, transitioning from the first sleep state to a semi-sleep state, and when the semi-sleep state continues for a predetermined time, returning from the semi-sleep state to the first sleep state; A program that executes a process. [Explanation of symbols]
[0242] 100,101...Device control device, 110,260...Processing unit, 120...Memory unit, 121...Emotion data, 122...Emotion change data, 123...Growth table, 124...Operation content table, 125...Motion table, 126...Growth days data, 130,270...Communication unit, 200,209...Robot, 201...Exterior, 202...Decorative parts, 203...Hur, 204...Head, 205...Connecting unit, 206...Torso, 207...Housing, 210...Sensor unit, 211...Touch sensor, 212...Acceleration sensor, 213...Microphone, 214...Illuminance sensor, 220...Drive unit, 221...Twist motor, 222...Up and down motor, 230...Output unit, 231...speaker, 240...operation unit, 241...power switch, 250...power control unit, 251...sub-microcomputer, 252...charging IC, 253...battery, 254...power control IC, 255...wireless power supply receiving circuit, 256...wireless charging device, 290...main function unit, 300...emotion map, 301, 302, 303...frame, 310, 410...origin, 311, 312, 411, 412, 413, 414...axis, 400...personality value radar chart, 501...screen, 1101, 2512, 2514, 2515, 2516, 2541...port, 2511...AD converter, 2513, 2901...power terminal, BL...bus line
Claims
1. A robot having an appearance formed in a horizontally long, crawling shape, A control unit is provided for switching an operation state between a normal state and a sleep state in which power consumption is suppressed more than in the normal state, The control means switching the operating state from the normal state to the sleep state based on the brightness detected by a predetermined sensor becoming equal to or lower than a predetermined threshold; when switching the operating state from the normal state to the sleep state based on the brightness becoming equal to or lower than a predetermined threshold, if a predetermined condition is satisfied including the head of the robot being above the torso of the robot in a vertical posture, the operating state is set to a hard sleep control mode in which the essential condition for returning the operating state from the sleep state to the normal state includes detection of the vertical posture; when switching the operating state from the normal state to the sleep state based on the brightness becoming equal to or lower than a predetermined threshold, if the setting condition for the hard sleep control mode is not met and a predetermined other sleep control mode different from the hard sleep control mode is set, detection of the vertical orientation or a predetermined detection different from the detection of the vertical orientation is set as a condition for returning the operating state from the sleep state to the normal state. A robot characterized by:
2. The predetermined detection is detection of a sound of a predetermined loudness or more.
2. The robot according to claim 1 .
3. The predetermined sensor is provided at a position corresponding to the back of the robot.
3. The robot according to claim 1 or 2.
4. The head is provided with artificial eyes, The eyes are provided in a position that appears to face in the opposite direction to the body. The robot according to any one of claims 1 to 3.
5. The head and the body are covered by a common exterior. The robot according to any one of claims 1 to 4.
6. The predetermined detection is detection of stroking the head or the torso through the exterior.
6. The robot according to claim 5.
7. A control method executed by a robot having an appearance formed in a horizontally elongated crawling shape, comprising: A control process for switching an operation state between a normal state and a sleep state in which power consumption is suppressed more than in the normal state, The control process includes: switching the operating state from the normal state to the sleep state based on the brightness detected by a predetermined sensor becoming equal to or lower than a predetermined threshold; when switching the operating state from the normal state to the sleep state based on the brightness becoming equal to or lower than a predetermined threshold, if a predetermined condition is satisfied including the head of the robot being above the torso of the robot in a vertical posture, the operating state is set to a hard sleep control mode in which the essential condition for returning the operating state from the sleep state to the normal state includes detection of the vertical posture; when switching the operating state from the normal state to the sleep state based on the brightness becoming equal to or lower than a predetermined threshold, if the setting condition for the hard sleep control mode is not met and a predetermined other sleep control mode different from the hard sleep control mode is set, detection of the vertical orientation or a predetermined detection different from the detection of the vertical orientation is set as a condition for returning the operating state from the sleep state to the normal state. A control method comprising:
8. The robot's computer, which has a horizontally long, crawling shape, functioning as a control means for switching an operation state between a normal state and a sleep state in which power consumption is suppressed more than in the normal state; The control means switching the operating state from the normal state to the sleep state based on the brightness detected by a predetermined sensor becoming equal to or lower than a predetermined threshold; when switching the operating state from the normal state to the sleep state based on the brightness becoming equal to or lower than a predetermined threshold, if a predetermined condition is satisfied including the head of the robot being above the torso of the robot in a vertical posture, the operating state is set to a hard sleep control mode in which the essential condition for returning the operating state from the sleep state to the normal state includes detection of the vertical posture; when switching the operating state from the normal state to the sleep state based on the brightness becoming equal to or lower than a predetermined threshold, if the setting condition for the hard sleep control mode is not met and a predetermined other sleep control mode different from the hard sleep control mode is set, detection of the vertical orientation or a predetermined detection different from the detection of the vertical orientation is set as a condition for returning the operating state from the sleep state to the normal state. A program characterized by:
Citation Information
Patent Citations
Wireless mouse
JP1999224158A
Robot system, exterior, and robot device
JP2001191275A
Leg type mobile robot
JP2003071763A
Robot toy modular system with distributed program
JP2003103063A
Robot, and method and program for recognizing state
JP2013013946A