Robot, robot control method, and program

The robot's motor system adjusts the head's orientation relative to the torso based on tilt and external stimuli, addressing unnatural postures in tilted or lifted positions, thereby enhancing realism and interaction.

JP7882357B2Active Publication Date: 2026-06-30CASIO COMPUTER CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
CASIO COMPUTER CO LTD
Filing Date
2025-01-06
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Existing robots simulating living creatures fail to realistically mimic the behavior of living things when tilted or lifted, resulting in unnatural postures.

Method used

A robot design incorporating a motor system that allows the head to rotate relative to the torso in response to external stimuli and tilt adjustments, ensuring the head remains horizontally oriented relative to the ground, mimicking natural creature postures.

Benefits of technology

The robot achieves realistic simulation of living creatures by maintaining a natural head posture during tilting and lifting, enhancing user interaction and engagement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007882357000001
    Figure 0007882357000001
  • Figure 0007882357000002
    Figure 0007882357000002
  • Figure 0007882357000003
    Figure 0007882357000003
Patent Text Reader

Abstract

To provide a robot capable of realistically simulating a creature, a control method of the robot, and a program.SOLUTION: A robot 200 includes a torso part and a head part rotatably connected to the torso part. An inclination determination unit 113 determines whether the torso part is inclined from a horizontal direction. When the inclination determination unit 113 determines that the torso part is inclined from the horizontal direction, an operation control unit 112 rotates the head part with respect to the torso part such that the head part faces in the horizontal direction.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a robot, a method for controlling the robot, and a program.

Background Art

[0002] Robots that simulate living things such as pets are known. For example, Patent Document 1 discloses a technique for posture stabilization control in a pet-type robot that mimics the body and movements of an animal.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the above-described robot, when the robot is placed at a non-horizontal angle or when the robot is lifted by a user, that is, when the robot is tilted from the horizontal direction, it is required to more realistically simulate a living thing.

[0005] The present invention is for solving the above problems, and an object thereof is to provide a robot, a method for controlling the robot, and a program that can realistically simulate a living thing.

Means for Solving the Problems

[0006] To achieve the above objective, one embodiment of the robot according to the present invention is a robot that simulates a living creature, comprising a head and a torso, the robot comprising: a motor for rotating the head in a predetermined direction relative to the torso; an external stimulus acquisition means for acquiring external stimuli; and a control means for driving the motor so that the rotational position of the head relative to the torso in the predetermined direction corresponds to the rotational position corresponding to the type of external stimulus acquired by the external stimulus acquisition means, wherein the control means, when the torso is tilted from the horizontal direction The rotational position of the head is The amount corresponding to the angle of inclination of the torso portion from the horizontal , in the opposite direction to the direction in which the torso is tilted So that it is offset 、 The present invention is characterized by driving the aforementioned motor. [Effects of the Invention]

[0007] According to the present invention, it is possible to provide a robot capable of realistically simulating living creatures, a method for controlling the robot, and a program. [Brief explanation of the drawing]

[0008] [Figure 1] This figure shows the external appearance of the robot according to the embodiment. [Figure 2] This is a cross-sectional view of the robot according to the embodiment, seen from the side. [Figure 3] This figure shows the housing of a robot according to the present invention. [Figure 4] This is the first figure showing the movement of the torsion motor of the robot according to the embodiment. [Figure 5] This is a second figure showing the movement of the torsion motor of the robot according to the embodiment. [Figure 6] This is the first figure showing the movement of the up and down motors of the robot according to the embodiment. [Figure 7] This is a second figure showing the movement of the up and down motors of the robot according to the embodiment. [Figure 8] This is a block diagram showing the functional configuration of a robot according to an embodiment. [Figure 9] This figure shows an example of an external stimulus according to the embodiment. [Figure 10] (a) and (b) are views of the robot housing in the upright state according to the embodiment, as seen from the side and the front, respectively. [Figure 11] (a) and (b) are the first diagrams showing the movement of the head when the robot according to the embodiment is tilted in the front-rear direction. [Figure 12] (a) and (b) are the second diagrams showing the movement of the head when the robot according to the embodiment is tilted in the front-rear direction. [Figure 13] (a) and (b) are the first diagrams showing the movement of the head when the robot according to the embodiment is tilted in the left-right direction. [Figure 14] (a) and (b) are the second diagrams showing the movement of the head when the robot according to the embodiment is tilted in the left-right direction. [Figure 15] (a) and (b) are diagrams showing an example of the robot according to the embodiment executing an operation of moving the head. [Figure 16] A diagram showing an example of the robot according to the embodiment being charged at a charging station. [Figure 17] A flowchart showing the flow of the robot control process according to the embodiment. [Figure 18] A flowchart showing the flow of the head horizontal control process according to the embodiment.

Embodiments for Carrying Out the Invention

[0009] Hereinafter, embodiments 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] FIGS. 1 to 3 show the appearance of the robot 200 according to the present embodiment. As shown in FIG. 1, the robot 200 is a pet robot imitating a small animal. The robot 200 includes an exterior 201 provided with decorative parts 202 imitating eyes and fluffy hair 203.

[0011] As shown in FIGS. 2 and 3, the robot 200 includes a housing 207. The housing 207 is covered by an exterior 201 and is housed inside the exterior 201. The housing 207 includes a head 204, a connecting portion 205, and a body portion 206. The connecting portion 205 connects the head 204 and the body portion 206.

[0012] The exterior 201 is an example of an exterior member and has a bag-like shape that is long in the front-rear direction and can accommodate the housing 207 inside. The exterior 201 is formed in a slender shape extending from the head 204 to the body portion 206 and integrally covers the body portion 206 and the head 204. By having the exterior 201 of such a shape, the robot 200 is formed in a belly-up shape.

[0013] The surface of the exterior 201 is formed of an artificial pile fabric that mimics the hair 203 of a small animal in order to simulate the touch of a small animal. The lining of the exterior 201 is formed of a synthetic fiber, natural fiber, natural leather, artificial leather, a sheet material made of synthetic resin, a sheet material made of rubber, or the like. Since it is formed of such a flexible material, the exterior 201 follows the movement of the housing 207. Specifically, the exterior 201 follows the rotation of the head 204 with respect to the body portion 206.

[0014] In order for the exterior 201 to follow the movement of the housing 207, the exterior 201 is attached to the housing 207 with snap buttons (not shown). Specifically, at least one snap button is provided in front of the head 204, and at least one snap button is provided behind the body portion 206. Also, snap buttons that fit with the snap buttons provided on the head 204 and the body portion 206 are provided at corresponding positions of the exterior 201, and the exterior 201 is fastened and attached to the housing 207 with the snap buttons. Note that the number and position of the snap buttons are merely examples and can be arbitrarily changed.

[0015] The torso 206 extends in the front-to-back direction and contacts the mounting surface, such as a floor or table, on which the robot 200 is placed, via the outer casing 201. The torso 206 is equipped with a twist motor 221 at its front end. The head 204 is connected to the front end of the torso 206 via a connecting part 205. The connecting part 205 is equipped with an up-and-down motor 222. In Figure 2, the twist motor 221 is located on the torso 206, but it may also be located on the connecting part 205. The twist motor 221 and the up-and-down motor 222 allow the head 204 to rotate relative to the torso 206 around the left-to-right and front-to-back axes of the robot 200.

[0016] For the XYZ coordinate system, the X and Y axes are set in the horizontal plane, and the Z axis is set in the vertical direction. The positive direction of the Z axis corresponds to the vertically upward direction. For the sake of simplicity, the following explanation assumes that the robot 200 is placed on the mounting surface with its left-right direction (width direction) being the X axis direction and its front-back direction being the Y axis direction.

[0017] The connecting portion 205 connects the body portion 206 and the head portion 204 so that they can rotate freely around a first rotation axis that extends through the connecting portion 205 in the front-rear direction (Y direction) of the body portion 206. As shown in Figures 4 and 5, the twist motor 221 rotates the head portion 204 clockwise (rightward) around the first rotation axis within a forward rotation angle range (forward rotation) or counterclockwise (leftward) within a reverse rotation angle range (reverse rotation) relative to the body portion 206.

[0018] In this explanation, clockwise rotation refers to the clockwise rotation when viewed from the torso 206 towards the head 204. Clockwise rotation is also called "rightward twisting rotation," and counterclockwise rotation is also called "leftward twisting rotation." The maximum value of the angle of twisting rotation to the right or left is arbitrary. In Figures 4 and 5, the angle of the head 204 when it is not twisted to the right or left (hereinafter referred to as the "reference twist angle") is represented as 0. The angle when twisting and rotating to the far left (counterclockwise rotation) is represented as -100, and the angle when twisting and rotating to the far right (clockwise rotation) is represented as +100.

[0019] Furthermore, the connecting portion 205 connects the body portion 206 and the head portion 204 so as to be rotatable around a second rotation axis that extends through the connecting portion 205 in the left-right direction (width direction, X direction) of the body portion 206. As shown in Figures 6 and 7, the up-down motor 222 rotates the head portion 204 upward within a forward rotation angle range (forward rotation) or downward within a reverse rotation angle range (reverse rotation) around the second rotation axis.

[0020] The maximum angle of rotation upward or downward is arbitrary, but in Figures 6 and 7, the angle of the head 204 when it is not rotated upward or downward (hereinafter referred to as the "upper and lower reference angle") is represented as 0, the angle when it is rotated as far downward as possible is represented as -100, and the angle when it is rotated as far upward as possible is represented as +100.

[0021] As shown in Figures 2 and 3, the robot 200 is equipped with touch sensors 211 on its head 204 and torso 206. The robot 200 can detect when a user strokes or taps the head 204 or torso 206 using the touch sensors 211.

[0022] The robot 200 has an accelerometer 212, a microphone 213, a gyro sensor 214, an illuminance sensor 215, a speaker 231, and a battery 250 in its torso 206. The robot 200 can detect changes in its own posture using the accelerometer 212 and gyro sensor 214, and can also detect when it is lifted, turned, or thrown by a user. The robot 200 can detect the illuminance around it using the illuminance sensor 215. The robot 200 can detect external sounds using the microphone 213. The robot 200 can emit sounds using the speaker 231.

[0023] Furthermore, at least a portion of the acceleration sensor 212, microphone 213, gyro sensor 214, illuminance sensor 215, and speaker 231 may be provided not only in the torso 206 but also in the head 204, or in both the torso 206 and the head 204.

[0024] Next, the functional configuration of the robot 200 will be described with reference to Figure 8. As shown in Figure 8, the robot 200 comprises a control unit 100, a sensor unit 210, a drive unit 220, an output unit 230, and an operation unit 240. These units are connected, for example, via a bus line BL. Alternatively, a wired interface such as a USB (Universal Serial Bus) cable or a wireless interface such as Bluetooth® may be used instead of the bus line BL.

[0025] The control device 100 comprises a control unit 110 and a storage unit 120. The control device 100 controls the operation of the robot 200 using the control unit 110 and the storage unit 120.

[0026] The control unit 110 includes a CPU (Central Processing Unit). The CPU is, for example, a microprocessor, and is a central processing unit that performs various processes and calculations. In the control unit 110, the CPU reads the control program stored in ROM and controls the operation of the entire device (robot 200) using RAM as work memory. Although not shown in the figures, the control unit 110 also has a clock function, a timer function, etc., and can measure the date and time. The control unit 110 may also be called a "processor".

[0027] The storage unit 120 includes ROM (Read Only Memory), RAM (Random Access Memory), flash memory, etc. The storage unit 120 stores programs and data used by the control unit 110 to perform various processes, including the OS (Operating System) and application programs. The storage unit 120 also stores data generated or acquired by the control unit 110 as a result of various processes.

[0028] The sensor unit 210 includes the aforementioned touch sensor 211, acceleration sensor 212, gyro sensor 214, and microphone 213. The control unit 110 acquires the detected values ​​from the various sensors in the sensor unit 210 as external stimuli via the bus line BL. The sensor unit 210 may also include sensors other than the touch sensor 211, acceleration sensor 212, gyro sensor 214, and microphone 213. By increasing the types of sensors in the sensor unit 210, the types of external stimuli that the control unit 110 can acquire can be increased.

[0029] The touch sensor 211 includes, for example, a pressure sensor or a capacitance sensor, and detects when an object comes into contact with it. Based on the values ​​detected by the touch sensor 211, the control unit 110 can detect whether the robot 200 is being stroked or tapped by the user.

[0030] The acceleration sensor 212 detects the acceleration applied to the torso 206 of the robot 200. The acceleration sensor 212 detects acceleration in the X-axis, Y-axis, and Z-axis directions, i.e., acceleration in all three axes.

[0031] For example, the acceleration sensor 212 detects gravitational acceleration when the robot 200 is stationary. Based on the gravitational acceleration detected by the acceleration sensor 212, the control unit 110 can detect the current posture of the robot 200. In other words, based on the gravitational acceleration detected by the acceleration sensor 212, the control unit 110 can detect whether or not the housing 207 of the robot 200 is tilted from the horizontal. Thus, the acceleration sensor 212 functions as a tilt detection means for detecting the tilt of the robot 200.

[0032] Furthermore, if the user lifts or throws the robot 200, the acceleration sensor 212 detects the acceleration associated with the movement of the robot 200 in addition to the acceleration due to gravity. Therefore, the control unit 110 can detect the movement of the robot 200 by removing the component of acceleration due to gravity from the detected value obtained by the acceleration sensor 212.

[0033] The gyro sensor 214 detects the angular velocity when rotation is applied to the torso 206 of the robot 200. Specifically, the gyro sensor detects the angular velocity of rotations around three axes: the X-axis, the Y-axis, and the Z-axis. By combining the detected values ​​from the acceleration sensor 212 and the gyro sensor 214, the movement of the robot 200 can be detected with greater accuracy.

[0034] The touch sensor 211, acceleration sensor 212, and gyro sensor 214 detect the contact strength, acceleration, and angular velocity, respectively, at synchronized intervals (for example, every 0.25 seconds), and output the detected values ​​to the control unit 110.

[0035] The microphone 213 detects sounds around the robot 200. Based on the sound components detected by the microphone 213, the control unit 110 can detect, for example, that a user is calling out to the robot 200 or clapping their hands.

[0036] The illuminance sensor 215 detects the illuminance around the robot 200. Based on the illuminance detected by the illuminance sensor 215, the control unit 110 can detect whether the area around the robot 200 has become brighter or darker.

[0037] The drive unit 220 includes a twist motor 221 and an up / down motor 222, which are driven by the control unit 110. The twist motor 221 is a servo motor for rotating the head 204 in the left-right direction (width direction) around the front-back direction as the axis relative to the body 206. The up / down motor 222 is a servo motor for rotating the head 204 in the up-down direction (height direction) around the left-right direction as the axis relative to the body 206. The robot 200 can express a sideways twisting motion of the head 204 using the twist motor 221, and can express an up-and-down motion of the head 204 using the up / down motor 222.

[0038] The output unit 230 is equipped with a speaker 231, and when the control unit 110 inputs sound data to the output unit 230, sound is output from the speaker 231. For example, when the control unit 110 inputs data of the robot 200's vocalizations to the output unit 230, the robot 200 emits a simulated vocalization.

[0039] Furthermore, the output unit 230 may be equipped with a display such as a liquid crystal display or a light-emitting unit such as an LED (Light Emitting Diode) in place of or in addition to the speaker 231, to display emotions such as joy or sadness on the display or to express them through the color and brightness of the emitted light.

[0040] The control unit 240 includes control buttons, a volume knob, and the like. The control unit 240 is an interface for receiving user operations such as turning the power on and off, and adjusting the output volume.

[0041] Battery 250 stores the power used by robot 200. Battery 250 is charged by the charging station when robot 200 returns to the charging station.

[0042] Next, the functional configuration of the control unit 110 will be described. As shown in Figure 8, the control unit 110 functionally comprises an external stimulus acquisition unit 111, which is an example of an external stimulus acquisition means; an operation control unit 112, which is an example of an operation control means; and an inclination determination unit 113, which is an example of an inclination determination means. In the control unit 110, the CPU functions as each of these units by reading a program stored in ROM into RAM and executing that program to control it.

[0043] The external stimulus acquisition unit 111 acquires external stimuli. External stimuli are stimuli that act on the robot 200 from outside the robot 200. Examples of external stimuli include "a loud noise," "someone talking to it," "someone stroking it," "it was lifted up," "it was turned upside down," "it got brighter," "it got darker," etc. External stimuli will also be referred to as "events" below.

[0044] The external stimulus acquisition unit 111 acquires external stimuli based on the values ​​detected by the sensor unit 210. More specifically, the external stimulus acquisition unit 111 acquires multiple external stimuli of different types using multiple sensors (touch sensor 211, acceleration sensor 212, microphone 213, gyro sensor 214, and illuminance sensor 215) provided in the sensor unit 210.

[0045] As an example, Figure 9 shows external stimuli (events) that can be acquired by the external stimulus acquisition unit 111. The external stimulus acquisition unit 111 acquires external stimuli such as "a loud noise" or "being spoken to" using the microphone 213. The external stimulus acquisition unit 111 acquires external stimuli such as "being stroked" using the touch sensor 211. The external stimulus acquisition unit 111 acquires external stimuli such as "being lifted" or "being turned upside down" using the acceleration sensor 212 and gyro sensor 214. The external stimulus acquisition unit 111 acquires external stimuli such as "it getting brighter" or "it getting darker" using the illuminance sensor 215.

[0046] When the external stimulus is acquired by the external stimulus acquisition unit 111, the motion control unit 112 causes the robot 200 to perform a corresponding action that corresponds to the acquired external stimulus. For example, if "a loud noise is heard," the motion control unit 112 causes the robot 200 to perform a surprised action. If "someone speaks to it," the motion control unit 112 causes the robot 200 to perform an action that responds to the speaking. If "it is turned upside down," the motion control unit 112 causes the robot 200 to perform an action that shows an unpleasant reaction. If "it is petted," the motion control unit 112 causes the robot 200 to perform an action that shows it is pleased.

[0047] Here, the actions that the motion control unit 112 causes the robot 200 to perform are realized by either or both of the following: motion by the drive unit 220 and output by the output unit 230. Specifically, the motion by the drive unit 220 corresponds to rotating the head 204 by driving the twist motor 221 or the up / down motor 222. The output by the output unit 230 corresponds to outputting a sound from the speaker 231, displaying an image on the display, or illuminating an LED. The actions of the robot 200 may also be called the robot 200's gestures, behavior, etc.

[0048] The correspondence between external stimuli and corresponding actions is pre-stored as an action table in the storage unit 120, although this is not shown in the diagram. The action control unit 112 refers to the action table and causes the robot 200 to execute the corresponding action corresponding to the external stimuli acquired by the external stimulus acquisition unit 111.

[0049] Furthermore, if no external stimulus is acquired by the external stimulus acquisition unit 111, the motion control unit 112 causes the robot 200 to perform a spontaneous action. Here, a spontaneous action refers to an action that does not depend on an external stimulus, such as an action that simulates breathing.

[0050] Returning to Figure 8, the tilt determination unit 113 determines whether the torso 206 is tilted from the horizontal direction. For example, if the robot 200 is placed at an angle to the horizontal direction, such as when the robot 200 is placed on an inclined surface or an uneven surface, the torso 206 will be tilted from the horizontal direction. Alternatively, the torso 206 can also be tilted from the horizontal direction by external stimuli acquired by the external stimulus acquisition unit 111, such as "lifted" or "turned over". The tilt determination unit 113 determines whether the torso 206 is tilted from the horizontal direction due to such circumstances.

[0051] Specifically, the tilt determination unit 113 determines the direction of the gravitational acceleration applied to the fuselage 206 based on the value detected by the acceleration sensor 212 provided on the fuselage 206. Then, based on the relationship between the direction of the gravitational acceleration and a reference plane pre-set on the fuselage 206, the tilt determination unit 113 determines whether or not the fuselage 206 has been tilted from the horizontal direction.

[0052] Generally, when an organism's body is tilted from a horizontal position, it exhibits a physiological reflex (righting reflex) that keeps its head horizontal to the ground. In other words, when an organism's body is tilted from a horizontal position, it does not keep its head tilted in the same way as its body, but rather rotates its head relative to its body so that its head remains horizontal to the ground.

[0053] Considering the nature of living creatures, if the housing 207 of the robot 200 is tilted from the horizontal, and the head 204 remains straight relative to the body 206, it will result in an unnatural posture for a living creature. Taking this into consideration, and in order to simulate a natural posture for a living creature, the motion control unit 112, when the tilt determination unit 113 determines that the body 206 has been tilted from the horizontal, rotates the head 204 relative to the body 206 so that the head 204 faces horizontally.

[0054] Figures 10(a) and (b) show the robot 200 in its upright position, not tilted from the horizontal. Here, the upright position is the initial state that serves as the reference for the tilt of the robot 200, where the head 204 is not rotated in any direction relative to the torso 206.

[0055] For ease of understanding, Figures 10(a) and (b) show only the housing 207 of the robot 200, omitting the exterior 201, sensor unit 210, etc. The same applies to Figures 11 to 14 thereafter.

[0056] A virtual first reference plane 310 is set on the torso 206 for determining the tilt of the torso 206. Similarly, a virtual second reference plane 320 is set on the head 204 for determining the tilt of the head 204. In Figures 10(a) and (b), the first reference plane 310 and the second reference plane 320 are shown by dashed lines, and the vertical direction is shown by dashed arrows. The first reference plane 310 and the second reference plane 320 are set to be parallel when the robot 200 is in its upright position.

[0057] As shown in Figures 10(a) and (b), when the robot 200 is in its upright position, the angle A between the first reference plane 310 and the vertical direction, and the angle B between the second reference plane 320 and the vertical direction, when the housing 207 is viewed from the side, are both right angles (90 degrees). Also, the angle C between the first reference plane 310 and the vertical direction, and the angle D between the second reference plane 320 and the vertical direction, when the housing 207 is viewed from the front, are both right angles (90 degrees).

[0058] If both angles A and C between the first reference plane 310 and the vertical direction are within a predetermined error range from 90 degrees, the tilt determination unit 113 determines that the fuselage 206 is not tilted from the horizontal direction. Conversely, if at least one of angles A and C between the first reference plane 310 and the vertical direction deviates from 90 degrees, the tilt determination unit 113 determines that the fuselage 206 is tilted from the horizontal direction.

[0059] The movement of the head 204 when the torso 206 is tilted from this upright position will be explained below with reference to Figures 11 to 14.

[0060] Firstly, when the torso 206 is tilted from the horizontal direction to the front-to-back direction of the robot 200, the motion control unit 112 rotates the head 204 around the left-to-right axis relative to the torso 206 so that the head 204 faces the horizontal direction.

[0061] Specifically, as shown in Figure 11(a), when the robot 200 is tilted so that its front is lifted, the entire housing 207 is tilted in the front-to-back direction, causing the first reference plane 310 and the second reference plane 320 to deviate from the horizontal. In this case, the angle A1 between the first reference plane 310 and the vertical direction becomes smaller than angle A, which is 90 degrees. Therefore, the tilt determination unit 113 determines that the torso 206 has been tilted from the horizontal direction.

[0062] In this case, as shown in Figure 11(b), the motion control unit 112 drives the up-and-down motor 222 to rotate the head 204 relative to the body 206 so that the head 204 faces horizontally. Specifically, the motion control unit 112 rotates the up-and-down motor 222 downward by an angle B1 around a second rotation axis that extends in the left-right direction. As a result, the second reference plane 320 returns to horizontal, and the head 204 faces horizontally. Angle B1 is calculated from the absolute value of the difference between angle A (90 degrees) and angle A1.

[0063] Furthermore, as shown in Figure 12(a), when the robot 200 is tilted so that its rear is lifted, the entire housing 207 is tilted in the front-to-back direction, causing the first reference plane 310 and the second reference plane 320 to deviate from the horizontal. In this case, the angle A2 between the first reference plane 310 and the vertical direction becomes greater than the angle A, which is 90 degrees. Therefore, the tilt determination unit 113 determines that the torso 206 has been tilted from the horizontal direction.

[0064] In this case, as shown in Figure 12(b), the motion control unit 112 drives the vertical motor 222 to rotate the head 204 relative to the body 206 so that the head 204 faces horizontally. Specifically, the motion control unit 112 rotates the vertical motor 222 upward by an angle B2 around a second rotation axis that extends in the left-right direction. As a result, the second reference plane 320 returns to horizontal, and the head 204 faces horizontally. Angle B2 is calculated from the absolute value of the difference between angle A (90 degrees) and angle A2.

[0065] Secondly, when the torso 206 is tilted from the horizontal to the left or right direction of the robot 200, the motion control unit 112 rotates the head 204 around the front-to-back axis relative to the torso 206 so that the head 204 faces horizontally.

[0066] Specifically, as shown in Figure 13(a), when the robot 200 is tilted in a clockwise direction, the entire housing 207 is tilted in the left-right direction, causing the first reference plane 310 and the second reference plane 320 to deviate from the horizontal. In this case, the angle C1 between the first reference plane 310 and the vertical direction becomes greater than the angle C, which is 90 degrees. Therefore, the tilt determination unit 113 determines that the torso 206 has been tilted from the horizontal direction.

[0067] In this case, as shown in Figure 13(b), the motion control unit 112 drives the twist motor 221 to rotate the head 204 relative to the body 206 so that the head 204 faces horizontally. Specifically, the motion control unit 112 rotates the twist motor 221 counterclockwise by an angle D1 around a first rotation axis that extends in the front-rear direction. As a result, the second reference plane 320 returns to horizontal, and the head 204 faces horizontally. The angle D1 is calculated by the absolute value of the difference between angle C (90 degrees) and angle C1.

[0068] Furthermore, as shown in Figure 14(a), when the robot 200 is tilted in a counterclockwise direction, the entire housing 207 is tilted in the left-right direction, causing the first reference plane 310 and the second reference plane 320 to deviate from the horizontal. In this case, the angle C2 between the first reference plane 310 and the vertical direction becomes smaller than the angle C, which is 90 degrees. Therefore, the tilt determination unit 113 determines that the body 206 has been tilted from the horizontal direction.

[0069] In this case, as shown in Figure 14(b), the motion control unit 112 drives the twist motor 221 to rotate the head 204 relative to the body 206 so that the head 204 faces horizontally. Specifically, the motion control unit 112 rotates the twist motor 221 clockwise by an angle D2 around a first rotation axis that extends in the front-rear direction. As a result, the second reference plane 320 returns to horizontal, and the head 204 faces horizontally. The angle D2 is calculated from the absolute value of the difference between angle C (90 degrees) and angle C2.

[0070] More specifically, if the tilt determination unit 113 determines that the torso 206 has been tilted from the horizontal, the motion control unit 112 determines whether the rotation angle of the head 204 required to orient the head 204 horizontally is less than or equal to the limit angle. If the rotation angle of the head 204 is less than or equal to the limit angle, the motion control unit 112 rotates the head 204 relative to the torso 206 so that the head 204 faces horizontally.

[0071] Here, the limit angle corresponds to the limit angle of the twist motor 221 when the head 204 is rotated around the front-to-back axis of the robot 200. As shown in Figure 4, when the head 204 is rotated clockwise, the limit angle corresponds to +100, which is the upper limit of the forward rotation angle range, and as shown in Figure 5, when the head 204 is rotated counterclockwise, the limit angle corresponds to -100, which is the upper limit of the reverse rotation angle range. Furthermore, when the head 204 is rotated around the left-to-right axis of the robot 200, the limit angle corresponds to the limit angle of the up-and-down motor 222. As shown in Figure 6, when the head 204 is rotated upward, the limit angle corresponds to +100, which is the upper limit of the forward rotation angle range, and as shown in Figure 7, when the head 204 is rotated downward, the limit angle corresponds to -100, which is the upper limit of the reverse rotation angle range.

[0072] Furthermore, the rotation angle of the head 204 to orient the head 204 horizontally corresponds to the angle obtained when the head 204 is rotated from its current angle by the amount of change in the tilt of the body 206, in the opposite direction to the tilt of the body 206, as shown by angles B1, B2, D1, and D2 in Figures 11(b) to 14(b). If the rotation angle of the head 204 to orient the head 204 horizontally exceeds the limit angle, it exceeds the range of rotation possible by the twist motor 221 or the up / down motor 222. Therefore, in this case, the motion control unit 112 does not rotate the head 204 relative to the body 206.

[0073] Next, we will describe the case in which, after performing the head horizontal control processing described above, the motion control unit 112 causes the robot 200 to perform a corresponding action corresponding to an external stimulus acquired by the external stimulus acquisition unit 111. Among the corresponding actions that the robot 200 performs in response to an external stimulus, there are some that involve rotating the head 204 relative to the torso 206, such as nodding, looking up, shaking the head, and twisting the neck. When the motion control unit 112 causes the robot 200 to perform such a corresponding action after performing the head horizontal control processing, it rotates the head 204 relative to the torso 206 using the angle of the head 204 after it has been rotated to face horizontally in the head horizontal control processing as a reference.

[0074] This will be explained with reference to Figures 15(a) and (b). Figure 15(a) shows an example in which, when the torso 206 is not tilted from the horizontal, the motion control unit 112 causes the robot 200 to perform an action to rotate the head 204 relative to the torso 206 by an angle of ±θ using the up and down motor 222 as a corresponding action to an external stimulus. In this case, the motion control unit 112 rotates the head 204 relative to the torso 206 by an angle of ±θ, using the up and down reference angle of the up and down motor 222 (0 in Figures 6 and 7) as a reference.

[0075] In contrast, Figure 15(b) shows an example in which, when the torso 206 is tilted from the horizontal direction, the motion control unit 112 rotates the head 204 downward by an angle B1 using head horizontal control processing, and then causes the robot 200 to perform the same corresponding operation as in Figure 15(a). In this case, the motion control unit 112 rotates the head 204 by an angle ±θ relative to the torso 206, using the angle obtained by rotating by an angle B1 from the vertical reference angle as a reference.

[0076] In other words, in Figure 15(a), the motion control unit 112 does not set an offset in the rotation range of the vertical motor 222 and rotates the head 204 in the range from angle θ to angle -θ. In contrast, in Figure 15(b), the motion control unit 112 sets an offset of angle B1 downward with respect to the rotation range of the vertical motor 222 and rotates the head 204 in the range from angle (-B1+θ) to angle (-B1-θ).

[0077] Although not shown in the diagram, when the robot 200 is to perform the same corresponding operation after the head 204 has been rotated upward by an angle B2 by the head horizontal control process, the motion control unit 112 sets an upward offset of an angle B2 relative to the rotation range of the vertical motor 222, and rotates the head 204 within the range of angle (B2+θ) to angle (B2-θ).

[0078] Furthermore, while Figures 15(a) and (b) describe the case where the head 204 is rotated by the vertical motor 222, the same applies when the head 204 is rotated by the twist motor 221. Specifically, when the motion control unit 112 rotates the head 204 counterclockwise by an angle D1 using the head horizontal control process and then has the robot 200 perform the same corresponding operation, the motion control unit 112 sets an offset of angle D1 counterclockwise relative to the rotation range of the twist motor 221 and rotates the head 204 in the range of angle (-D1+θ) to angle (-D1-θ). Also, when the motion control unit 112 rotates the head 204 clockwise by an angle D2 using the head horizontal control process and then has the robot 200 perform the same corresponding operation, the motion control unit 112 sets an offset of angle D2 clockwise relative to the rotation range of the twist motor 221 and rotates the head 204 in the range of angle (D2+θ) to angle (D2-θ).

[0079] In this way, the motion control unit 112 sets an offset in the rotation range of the twist motor 221 or the up / down motor 222 so that the rotation angle of the head 204 after head horizontal control becomes the reference when performing a response action in response to an external stimulus. By adjusting the movement angle of the head 204 with this offset control, the above-mentioned head horizontal control can be introduced into the normal operation of the robot 200 without any sense of incongruity. In addition, since the response action differs depending on the tilt of the robot 200, the number of operation patterns of the robot 200 can be increased.

[0080] Next, we will describe the case when the robot 200 is being charged. Figure 16 shows an example of a charging station 400 for charging the battery 250 of the robot 200. The charging station 400 is equipment for charging the robot 200.

[0081] The charging station 400 is equipped with a base on which the robot 200 is placed. A power transmission coil is installed inside the base. With the robot 200 placed on the base, the charging station 400 can wirelessly charge the battery 250 using well-known methods such as electromagnetic induction, magnetic field resonance, and electric field coupling.

[0082] The charging station 400 is installed in a suitable location that allows the robot 200 to autonomously move to (return to) the charging station 400. When the charge level of the battery 250 falls below a minimum value, or when a predetermined time arrives, the robot 200 moves to the charging station 400 to charge the battery 250.

[0083] When the battery 250 is being charged at the charging station 400, if the head 204 rotates relative to the body 206, the posture of the robot 200 on the base changes, which may hinder proper charging. For example, if the up / down motor 222 rotates the head 204 downward, the body 206 may lift off the base. Also, if the twist motor 221 rotates the head 204, the body 206 may shift away from the base. To avoid such situations that hinder charging, the motion control unit 112 does not rotate the head 204 relative to the body 206 when the battery 250 is being charged, even if the tilt determination unit 113 determines that the body 206 is tilted from the horizontal direction.

[0084] The rotational speed at which the drive unit 220 (twist motor 221 or up / down motor 222) rotates the head 204 relative to the body 206 may be constant or may vary depending on the conditions. For example, the motion control unit 112 may vary the rotational speed at which the head 204 rotates relative to the body 206 according to the age of the robot 200. In this case, in order to simulate an actual living creature, the rotational speed may be slower when the age of the robot 200 is below a predetermined age than when the age of the robot 200 is above a predetermined age. Here, the age of the robot 200 corresponds, for example, to the time since the robot 200 was manufactured or shipped.

[0085] Next, the flow of the robot control process according to this embodiment will be explained with reference to Figure 17. The robot control process shown in Figure 17 is executed by the control unit 110 of the control device 100 when power is turned on to the robot 200. The robot control process shown in Figure 17 is an example of a robot control method.

[0086] When the robot control process starts, the control unit 110 performs an initialization process (step S1). In the initialization process, the control unit 110 sets the rotation angle of the twist motor 221 to the twist reference angle of 0, sets the rotation angle of the up / down motor 222 to the up / down reference angle of 0, and sets the system timer to 0.

[0087] After the initialization process is executed, the control unit 110 executes the head horizontal control process (step S2). The control unit 110 executes the head horizontal control process as an interrupt process at regular time intervals (for example, every 100ms). Details of the head horizontal control process in step S2 will be explained with reference to Figure 18.

[0088] When the head horizontal control process shown in Figure 18 is started, the control unit 110 acquires the tilt of the torso 206 (step S21). Specifically, the control unit 110 acquires the direction of gravitational acceleration detected by the acceleration sensor 212. Then, the control unit 110 acquires the tilt of the torso 206 by measuring the angle between the direction of gravitational acceleration and the first reference plane 310 set on the torso 206.

[0089] When the tilt of the torso 206 is obtained, the control unit 110 functions as a tilt determination unit 113 and determines whether the tilt of the torso 206 has changed around the left-right axis of the robot 200 (step S22). Specifically, as shown in Figure 11(a) or Figure 12(a), the control unit 110 determines whether the torso 206 has been tilted in the front-rear direction. Step S22 is an example of a tilt determination step.

[0090] If the tilt of the torso 206 changes with respect to the left-right direction of the robot 200 (step S22; YES), the control unit 110 determines whether the rotation angle of the up-down motor 222 when the head 204 is facing horizontally is less than or equal to the limit angle (step S23).

[0091] If the rotation angle of the up / down motor 222 is less than or equal to the limit angle (step S23; YES), the control unit 110 functions as an operation control unit 115 and rotates the head 204 using the up / down motor 222 (step S24). Specifically, as shown in Figure 11(b) or Figure 12(b), the control unit 110 rotates the head 204 in the opposite direction to the tilt of the torso 206 by the amount of change in the tilt of the torso 206 obtained in step S1. This adjusts the direction of the head 204 to be horizontal even if the torso 206 is tilted. Step S24 is an example of an operation control step.

[0092] When the head 204 is rotated by the up / down motor 222, the control unit 110 updates the offset of the up / down motor 222 to the angle after rotation in step S24 (step S25).

[0093] In contrast, if the rotation angle of the up / down motor 222 exceeds the limit angle (step S23; NO), the control unit 110 skips steps S24 to S25. In this case, the control unit 110 rotates the head 204 by an amount that cancels out the change in the tilt of the body 206, which would cause the rotation angle of the up / down motor 222 to exceed the limit angle, so it does not rotate the up / down motor 222.

[0094] If the tilt of the torso 206 does not change with respect to the left-right axis of the robot 200 (step S22; NO), the control unit 110 skips the processing in steps S23 to S25.

[0095] Next, the control unit 110 functions as a tilt determination unit 113 and determines whether the tilt of the torso 206 has changed around the front-rear direction of the robot 200 (step S26). Specifically, as shown in Figure 13(a) or Figure 14(a), the control unit 110 determines whether the torso 206 has been tilted in the left-right direction. Step S26 is an example of a tilt determination step.

[0096] If the tilt of the torso 206 changes around the front-to-back axis of the robot 200 (step S26; YES), the control unit 110 determines whether the rotation angle of the torsion motor 221 when the head 204 is facing horizontally is less than or equal to the limit angle (step S27).

[0097] If the rotation angle of the twist motor 221 is less than or equal to the limit angle (step S27; YES), the control unit 110 functions as an motion control unit 115 and rotates the head 204 using the twist motor 221 (step S28). Specifically, as shown in Figure 13(b) or Figure 14(b), the control unit 110 rotates the head 204 in the opposite direction to the tilt of the body 206 by the amount of change in the tilt of the body 206 obtained in step S1. This adjusts the direction of the head 204 to be horizontal even if the body 206 is tilted. Step S28 is an example of a motion control step.

[0098] When the head 204 is rotated by the twist motor 221, the control unit 110 updates the offset of the twist motor 221 to the angle after rotation in step S28 (step S29).

[0099] In contrast, if the rotation angle of the twist motor 221 exceeds the limit angle (step S27; NO), the control unit 110 skips steps S28 to S29. In this case, the control unit 110 rotates the head 204 by an amount that cancels out the change in the tilt of the body 206, but because the rotation angle of the twist motor 221 exceeds the limit angle, it does not rotate the twist motor 221.

[0100] If the tilt of the torso 206 does not change around the front-to-back axis of the robot 200 (step S26; NO), the control unit 110 skips the processing in steps S27 to S29. With this, the head horizontal control process shown in Figure 18 is completed.

[0101] Although not shown in the diagram, if the battery 250 is being charged at the charging station 400, the control unit 110 skips the head horizontal control process shown in Figure 18.

[0102] Returning to Figure 17, once the posture of the robot 200 is controlled in step S2, the control unit 110 functions as an external stimulus acquisition unit 111 and determines whether or not an external stimulus has been acquired (step S3). Specifically, the control unit 110 determines, based on the values ​​detected by the sensor unit 210, whether or not an external stimulus has occurred, such as "a loud noise was made," "someone spoke to it," "it was stroked," "it was lifted up," "it was turned upside down," "it got brighter," or "it got darker." Step S3 is an example of an external stimulus acquisition step.

[0103] If an external stimulus is acquired (step S3; YES), the control unit 110 functions as an action control unit 115 and causes the robot 200 to perform an action corresponding to the external stimulus acquired in step S3 (step S4). For example, if "a loud noise is heard," the control unit 110 causes the robot 200 to perform an action in response to the loud noise. If "it is turned upside down," the control unit 110 causes the robot 200 to perform an action in response to being turned upside down. If "it is spoken to," the control unit 110 causes the robot 200 to perform an action in response to being spoken to. If "it is petted," the control unit 110 causes the robot 200 to perform an action in response to being petted.

[0104] In this case, if the action in response to an external stimulus includes an action to rotate the head 204 relative to the torso 206, and an offset is set in the head horizontal control process of step S2, the control unit 110 rotates the head 204 relative to the torso 206 with respect to an angle obtained by adding an offset to the vertical reference angle or the twist reference angle.

[0105] On the other hand, if no external stimulus is acquired in step S3 (step S3; NO), the control unit 110 causes the robot 200 to perform a spontaneous action as needed (step S5). Specifically, the control unit 110 causes the robot 200 to perform an action that does not depend on an external stimulus, such as an action that simulates breathing.

[0106] After operating the robot 200 in step S4 or S5, the control unit 110 returns to step S2 and executes the processes in steps S2 to S5 again. In this way, the control unit 110 repeatedly executes the processes in steps S2 to S5 as long as the robot 200 is powered on and is able to operate normally.

[0107] As described above, the robot 200 according to this embodiment determines whether the torso 206 is tilted from the horizontal direction, and if the torso 206 is tilted from the horizontal direction, it rotates the head 204 relative to the torso 206 so that the head 204 faces horizontally. This horizontal head control can simulate the behavior of an animal that tries to keep its head horizontal when its body is tilted. As a result, the robot 200 according to this embodiment can realistically simulate an animal and enhance its lifelike appearance.

[0108] For example, when a user is holding robot 200 with both hands and tilts it, the robot 200 adjusts the direction of its head 204 horizontally through head horizontal control. This action makes the user feel as if robot 200 is trying to communicate with them, especially when the user is facing robot 200, because the robot 200 is constantly trying to orient its head 204 towards the user. As a result, the user can feel a greater sense of familiarity with robot 200.

[0109] (modified version) Although embodiments of the present invention have been described above, these embodiments are merely examples, and the scope of application of the present invention is not limited thereto. In other words, the embodiments of the present invention can be applied in various ways, and all embodiments fall within the scope of the present invention.

[0110] For example, in the above embodiment, the head 204 was rotatably connected to the body 206 by a twist motor 221 and an up / down motor 222, with the axes being the left-right direction and the front-back direction. However, the head 204 may be rotatably connected to the body 206 with an axis in only one of the two directions, the left-right direction and the front-back direction, or it may be rotatably connected with an axis in any other direction.

[0111] In the above embodiment, the exterior 201 was formed in a cylindrical shape from the head 204 to the torso 206, and the robot 200 was in a prone position. However, the robot 200 is not limited to mimicking a creature in a prone position. For example, the robot 200 may have limbs and mimic a quadrupedal or bipedal creature. Even quadrupedal or bipedal creatures have the property of trying to keep their heads horizontal when their torso is tilted from the horizontal direction. Therefore, by performing the head horizontal control described in the above embodiment, it is possible to realistically mimic a living creature.

[0112] In the above embodiment, the control device 100 was built into the robot 200, but the control device 100 may be a separate device (e.g., a server) rather than being built into the robot 200. If the control device 100 is located outside the robot 200, the robot 200 communicates with the control device 100 via a communication unit to send and receive data to and from each other. Through such communication with the robot 200, the external stimulus acquisition unit 111 acquires external stimuli detected by the sensor unit 210, and the motion control unit 112 controls the drive unit 220 and the output unit 230.

[0113] In the above embodiment, the control unit 110 functioned as the external stimulus acquisition unit 111, the motion control unit 112, and the tilt determination unit 113 by the CPU executing a program stored in ROM. However, in the present invention, the control unit 110 may be equipped with dedicated hardware such as an ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), or various control circuits instead of a CPU, and this dedicated hardware may function as the external stimulus acquisition unit 111, the motion control unit 112, and the tilt determination unit 113. In this case, each function of each part may be realized by separate hardware, or the functions of each part may be realized together by a single piece of hardware. Furthermore, some of the functions of each part may be realized by dedicated hardware, and other parts may be realized by software or firmware.

[0114] Furthermore, while it is possible to provide a robot pre-configured to realize the functions according to the present invention, it is also possible to make existing information processing devices, etc., function as robots according to the present invention by applying a program. That is, by applying a program to realize each functional configuration of the robot 200 exemplified in the above embodiment so that it can be executed by a CPU, etc. that controls an existing information processing device, etc., it can be made to function as a robot according to the present invention.

[0115] Furthermore, the method of applying such a program is arbitrary. The program can be stored and applied on a computer-readable storage medium such as a flexible disk, CD (Compact Disc)-ROM, DVD (Digital Versatile Disc)-ROM, or memory card. In addition, the program can be superimposed on a carrier wave and applied via a communication medium such as the Internet. For example, the program may be posted and distributed on a bulletin board system (BBS) on a communication network. The program can then be launched and executed under the control of the OS (Operating System), similar to other application programs, to perform the aforementioned processing.

[0116] Although preferred embodiments of the present invention have been described above, the present invention is not limited to the embodiments described above, and various modifications and substitutions can be made to the embodiments described above without departing from the scope of the claims. [Explanation of Symbols]

[0117] 100...Control device, 110...Control unit, 111...External stimulus acquisition unit, 112...Motion control unit, 113...Tilt determination unit, 120...Memory unit, 200...Robot, 201...Exterior, 202...Decorative parts, 203...Hair, 204...Head, 205...Connecting unit, 206...Body unit, 207...Housing, 210...Sensor unit, 211...Touch sensor, 212...Accelerometer, 213...Microphone, 214...Gyro sensor, 215...Illuminance sensor, 220...Drive unit, 221...Twist motor, 222...Up / down motor, 230...Output unit, 231...Speaker, 240...Operation unit, 250...Battery, 310, 320...Reference plane, 400...Charging station, BL...Bus line

Claims

1. A robot that has a head and a torso and mimics a living creature, A motor for rotating the head in a predetermined direction relative to the body, External stimulus acquisition means for acquiring external stimuli, A control means for driving the motor so that the rotational position of the head relative to the torso in the predetermined direction corresponds to the rotational position corresponding to the type of external stimulus acquired by the external stimulus acquisition means, Equipped with, The control means drives the motor such that, when the torso is tilted from the horizontal, the rotational position of the head is offset in the opposite direction to the tilt of the torso by an amount corresponding to the tilt angle of the torso from the horizontal. A robot characterized by the following features.

2. A robot whose head and torso are connected in the front-to-back direction, which mimics a living creature. A motor for rotating the head in the vertical direction relative to the body, with the left-right direction as the axis, External stimulus acquisition means for acquiring external stimuli, A control means for driving the motor so that the vertical rotation position of the head relative to the torso corresponds to the rotation position corresponding to the type of external stimulus acquired by the external stimulus acquisition means, Equipped with, The control means drives the motor such that, when the torso is tilted from the horizontal in the front-rear direction, the rotational position of the head is offset in the opposite direction to the tilt of the torso by an amount corresponding to the tilt angle of the torso from the horizontal. A robot characterized by the following features.

3. A method for controlling a robot that mimics a living creature, comprising a head and a torso, An external stimulus acquisition step to acquire external stimuli, A control step of driving a motor to rotate the head in the predetermined direction relative to the torso so that the rotational position of the head relative to the torso in the predetermined direction corresponds to the rotational position corresponding to the type of external stimulus acquired in the external stimulus acquisition step, Includes, The control step involves driving the motor such that, when the torso is tilted from the horizontal, the rotational position of the head is offset in the opposite direction to the tilt of the torso by an amount corresponding to the tilt angle of the torso from the horizontal. A robot control method characterized by the following features.

4. A computer for a robot that mimics a living creature, equipped with a head and a torso, External stimulus acquisition means for acquiring external stimuli, Control means for driving a motor to rotate the head in a predetermined direction relative to the torso so that the rotational position of the head relative to the torso in a predetermined direction corresponds to the rotational position corresponding to the type of external stimulus acquired by the external stimulus acquisition means. To make it function as, The control means drives the motor such that, when the torso is tilted from the horizontal, the rotational position of the head is offset in the opposite direction to the tilt of the torso by an amount corresponding to the tilt angle of the torso from the horizontal. A program characterized by the following features.