Robot, robot control method, and program

The robot system addresses unintentional movement by controlling the actuator's state based on the movable part's orientation, ensuring stability and reducing power usage.

JP2026056949APending Publication Date: 2026-04-02CASIO COMPUTER CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-20
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Unintentional movement of a movable part in a robot due to external forces or its own weight when actuator control is stopped.

Method used

A robot system with a base, a movable part, an actuator, and a processing unit that controls the movable part's orientation by determining if it is within a predetermined angular range, and if not, restricts its rotation using a first or second state of the actuator.

Benefits of technology

Suppresses unintended movement of the movable part, reducing power consumption while maintaining the desired orientation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026056949000001_ABST
    Figure 2026056949000001_ABST
Patent Text Reader

Abstract

Suppresses unintended movement of movable parts. [Solution] The robot comprises a base, a movable part mounted on the base so as to be rotatable around a predetermined axis of rotation, an actuator that rotates the movable part around the axis of rotation, and a processing unit that controls the orientation of the movable part around the axis of rotation by controlling the operation of the actuator. When stopping the rotation of the movable part, the processing unit determines whether the orientation of the movable part is within a predetermined angular range including a predetermined reference orientation. If it determines that the orientation is within the predetermined angular range, it controls the actuator to a first state in which the rotation of the movable part is not restricted. If it determines that the orientation is not within the predetermined angular range, it controls the actuator to a second state in which the rotation of the movable part is restricted.
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] Conventionally, a technique for controlling the movement of a movable part of a robot by an actuator such as a servo motor is known (for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, when stopping the control of the movement of the movable part by the actuator, if the movement of the movable part is not restricted, the movable part may move unintentionally due to an external force or its own weight.

[0005] An object of the present invention is to suppress unintentional movement of a movable part.

Means for Solving the Problems

[0006] To solve the above problems, a robot according to the present invention includes: a base, a movable part attached to the base so as to be rotatable around a predetermined rotation axis, an actuator that rotates the movable part around the rotation axis, and a processing unit that controls the direction of the movable part around the rotation axis by controlling the operation of the actuator. The processing unit When stopping the rotation of the movable part, it is determined whether the orientation of the movable part is within a predetermined angular range that includes a predetermined reference orientation. If it is determined that the orientation is within the predetermined angular range, the actuator is controlled to enter a first state in which the rotation of the movable part is not restricted. If it is determined that the orientation is not within the predetermined angular range, the actuator is controlled to enter a second state that restricts the rotation of the movable part. [Effects of the Invention]

[0007] According to the present invention, unintended movement of the movable part can be suppressed. [Brief explanation of the drawing]

[0008] [Figure 1] This is a diagram showing the appearance of the robot. [Figure 2] This is a schematic diagram showing the configuration of the robot's main body. [Figure 3] This is a block diagram showing the functional configuration of a robot. [Figure 4] This diagram shows the robot's body performing horizontal head control around the first axis of rotation. [Figure 5] This diagram shows the robot's body performing horizontal head control around the first axis of rotation. [Figure 6] This is a view of the robot's main body in its basic posture, seen from the front. [Figure 7] This diagram shows the robot's body performing horizontal head control around the second axis of rotation. [Figure 8] This diagram shows the robot's body performing horizontal head control around the second axis of rotation. [Figure 9] This is a diagram showing the first angular range. [Figure 10] This figure shows the second angular range. [Figure 11] This is a flowchart showing the control procedure for robot suppression processing. [Figure 12]This flowchart shows the control procedure for the head horizontal suppression process. [Figure 13] This is a flowchart showing the control procedure for the braking control process. [Modes for carrying out the invention]

[0009] Embodiments of the present invention will be described below with reference to the drawings. As shown in Figure 1, the robot 1 comprises a main body 100 and an outer casing 200 that covers the entire surface of the main body 100. The robot 1 is a pet robot that mimics a small living creature. The robot 1 can perform a plurality of different actions that mimic the gestures of living creatures. The outer casing 200 is made of a flexible material and deforms according to the movement of the main body 100. The outer casing 200 has, for example, fur made of pile fabric, or decorative members that mimic eyes. The back surface of the outer casing 200 (the surface that contacts the main body 100) is provided with an engagement portion (not shown) that can be engaged with a fastener (not shown) provided on the surface of the main body 100. By engaging the engagement portion with the fastener, the main body 100 and the outer casing 200 can be prevented from shifting significantly. The number of engagement portions and fasteners is kept to the minimum necessary so as not to hinder the movement of the main body 100 and so as to facilitate the attachment and detachment of the outer casing 200. In this embodiment, the engaging parts and fasteners are provided at a total of three locations: the left and right eye positions of the robot 1, and the rear end.

[0010] As shown in Figure 2, the main body 100 of the robot 1 has a movable head 101, a base torso 103, and a connecting part 102 that connects the head 101 and the torso 103. In the following, the posture and orientation of the robot 1 will be described using the XYZ coordinate system defined by the X and Y axes parallel to the horizontal plane and the Z axis pointing vertically upward. In Figure 2, the robot 1 is assumed to be placed on a horizontal plane with its left-right direction (width direction) parallel to the X-axis direction. The head 101 is attached to the torso 103 in a manner that allows it to rotate around a first rotation axis 401 and a second rotation axis 402, respectively. The second rotation axis 402 is parallel to the extending direction of the connecting part 102 and is parallel to the Y-axis direction in Figure 2. The first rotation axis 401 is in a direction that intersects (orthogonal in this embodiment) the second rotation axis 402 and is parallel to the X-axis direction in Figure 2. The direction parallel to the second rotation axis 402 is the front-rear direction of the robot 1. The direction parallel to the front-rear direction and moving from the torso 103 towards the head 101 is the forward direction. The direction perpendicular to the second rotation axis 402 and parallel to the horizontal plane when the robot 1 is placed on a horizontal plane is the left-right direction of the robot 1. In Figure 2, the +Y direction is the forward direction and the +X direction is the right direction. Hereafter, a virtual axis fixed to the torso 103 that is parallel to the front-rear direction and moves forward will be referred to as the "front-rear axis 103a", and an axis parallel to the left-right direction and moving to the right will be referred to as the "left-right axis 103b". Furthermore, a virtual axis fixed to the head 101 that is parallel to the front-rear direction and moves forward when the robot 1 is in a predetermined basic posture will be referred to as the "front-rear axis 101a", and an axis parallel to the left-right direction and moving to the right when the robot 1 is in a basic posture will be referred to as the "left-right axis 101b". The basic posture is the posture shown in Figure 2, in which robot 1 appears to be facing forward without tilting its head 101. The left-right axis 101b of the head 101 is parallel to the first rotation axis 401. The direction of the front-back axis 101a corresponds to the direction of the head 101 around the first rotation axis 401. The direction of the left-right axis 101b corresponds to the direction of the head 101 around the second rotation axis 402.

[0011] The main body 100 has a drive unit 40 for moving the head 101 relative to the body unit 103. The drive unit 40 has a vertical movement motor 41 (first actuator) and a twisting motor 42 (second actuator). The vertical movement motor 41 is a servo motor that rotates the head 101 around the first rotation axis 401. For example, the first rotation axis 401 of the vertical movement motor 41 is fixed to the connecting part 102, and the servo horn of the vertical movement motor 41 is attached to the head 101. Here, the servo horn is a part that rotates in conjunction with the rotation axis of the servo motor and is a part for transmitting the rotational movement of the servo motor to the outside. The movement of the robot 1 moving the head 101 up and down is realized by the vertical movement motor 41. By the movement of the robot 1 moving the head 101 up and down, the front-rear axis 101a of the head 101 becomes a direction intersecting the horizontal plane. The twisting motor 42 is a servo motor that rotates the head 101 and the connecting part 102 around the second rotation axis 402. For example, the second rotation axis 402 of the twisting motor 42 is fixed to the body unit 103, and the servo horn of the twisting motor 42 is attached to the connecting part 102. By the operation of the twisting motor 42, the movement of the robot 1 twisting the head 101 is realized. By the movement of the robot 1 twisting the head 101, the left-right axis 101b of the head 101 becomes a direction intersecting the horizontal plane. Depending on the angle of twisting of the head 101 by the twisting motor 42, the direction of the up and down movement of the head 101 can also be a direction inclined with respect to the vertical direction. By operating the vertical movement motor 41 and / or the twisting motor 42 finely and periodically, the movement of the robot 1 rocking or shaking the head 101 is realized. By appropriately changing and combining the timing, magnitude, and speed of the operations of the vertical movement motor 41 and the twisting motor 42, various operations can be performed on the robot 1, such as a happy operation, a surprised operation, a breathing operation imitating the breathing of a living thing, etc. Among these, the breathing operation is an aspect of the spontaneous operation by the robot 1.

[0012] As shown in FIG. 2, the main body 100 includes a first touch sensor 51a, a second touch sensor 51b, an acceleration sensor 52, a gyro sensor 53, an illuminance sensor 54, a microphone 55, a sound output unit 30, and a power receiving coil 73. The first touch sensor 51a is provided on the upper part of the head 101. The second touch sensor 51b is provided on the upper part and the side surface of the body part 103, respectively. Hereinafter, when referring to either one of the first touch sensor 51a and the second touch sensor 51b, it is denoted as "touch sensor 51". The acceleration sensor 52, the gyro sensor 53, and the power receiving coil 73 are provided near the lower surface of the body part 103. The illuminance sensor 54 and the sound output unit 30 are provided on the upper part of the body part 103. The microphone 55 is provided on the upper part near the base of the head 101.

[0013] As shown in FIG. 3, the robot 1 includes a CPU 11 (Central Processing Unit) (processing unit, processing means), a RAM 12 (Random Access Memory), a storage unit 13, an operation unit 20, a sound output unit 30, a drive unit 40, a sensor unit 50, a communication unit 60, and a power supply unit 70. Each part of the robot 1 is connected via a data transmission path such as a bus. Each functional configuration shown in FIG. 3 is provided in the main body 100. The CPU 11, the RAM 12, and the storage unit 13 constitute a robot control device 10 that controls the operation of the robot 1.

[0014] The CPU 11 is a processor that reads and executes a program 131 stored in the storage unit 13 and performs various arithmetic processes to control the operation of the robot 1. Note that the robot 1 may have a plurality of processors (for example, a plurality of CPUs), and a plurality of processes executed by the CPU 11 in the present embodiment may be executed by the plurality of processors. In this case, the processing unit is constituted by the plurality of processors. In this case, the plurality of processors may be involved in common processing, or the plurality of processors may independently execute different processes in parallel. The RAM 12 provides a working memory space for the CPU 11 and stores temporary data.

[0015] The memory unit 13 is a non-temporary recording medium readable by the CPU 11 as a computer, and stores the program 131 and various data. The memory unit 13 includes, for example, non-volatile memory such as flash memory. The program 131 is stored in the memory unit 13 in the form of program code that can be read by the computer. The data stored in the memory unit 13 includes operation setting data 132, etc. The operation setting data 132 contains settings for communication actions that the robot 1 performs according to the state of the robot 1 and the content of external stimuli, automatically generated actions that the robot 1 performs spontaneously without external stimuli, and actions such as breathing. The automatically generated actions can also be called whimsical actions, as they make the robot 1 appear to be making whimsical gestures. Settings related to the action content include, for example, the setting of the operation timing and amount of the up-and-down motor 41 and the twist motor 42 of the drive unit 40, and the setting of the pitch (height), length, and volume of the sound output by the sound output unit 30.

[0016] The control unit 20 includes operation buttons and knobs for turning the power on and off, and adjusting the volume of the sound output by the sound output unit 30. The control unit 20 outputs operation information to the CPU 11 in response to input operations on the operation buttons and knobs. The sound output unit 30 includes a speaker and outputs sound with pitch (height), length, and volume corresponding to the control signals and sound data transmitted from the CPU 11. The sound may be a sound that imitates the sounds of living creatures.

[0017] The drive unit 40 operates the vertical motor 41 and the twist motor 42 according to control signals transmitted from the CPU 11. As described above, both the vertical motor 41 and the twist motor 42 are servo motors. A servo motor comprises a motor having a rotor that rotates inside a stator, a driver that supplies power to the motor to drive it, and an encoder that detects the rotation angle (rotation position) of the rotor. The stator is provided with multiple windings surrounding the rotor. A magnetic field is generated at the position of the rotor according to the current supplied from the driver to the windings, and the rotor rotates due to the force exerted by the change in this magnetic field. In addition, the detection result of the rotor's rotation angle by the encoder is fed back to the driver, and the driver drives the motor so that the rotation angle of the rotor becomes the angle instructed by the CPU 11. A servo motor having such a mechanism can rotate the movable part of the object to be moved (in this embodiment, the head 101) in an instructed direction and perform angle control to maintain that direction. If the orientation of the movable part attempts to change due to external force or its own weight while the servo motor is performing angle control, feedback control kicks in to prevent the servo motor from changing orientation. Therefore, the orientation of the movable part is maintained in the instructed direction. This action of maintaining the orientation of the movable part can also be described as applying a brake to the movable part. In other words, by performing angle control, the servo motor can limit the rotation of the movable part from the instructed direction. If the power supply to the servo motor is stopped, angle control will cease, and therefore the action of limiting the rotation of the movable part will also cease. The state in which the servo motor is not performing angle control corresponds to the first state, in which the rotation of the movable part is not limited. The state in which the servo motor is performing angle control corresponds to the second state, in which the rotation of the movable part is limited.

[0018] The sensor unit 50 includes the first touch sensor 51a, the second touch sensor 51b, the acceleration sensor 52, the gyro sensor 53, the illuminance sensor 54, and the microphone 55, and outputs the detection results from each sensor and the microphone 55 to the CPU 11. The touch sensor 51 detects when a user or other object comes into contact with the robot 1. The touch sensor 51 includes, for example, a pressure sensor or a capacitance sensor, and outputs detection data regarding the presence or absence of contact with the robot 1 to the CPU 11. The acceleration sensor 52 detects acceleration in each of the three orthogonal axis directions and outputs the detection data to the CPU 11. The gyro sensor 53 detects angular velocity around each of the three orthogonal axis directions and outputs the detection data to the CPU 11. The illuminance sensor 54 detects the brightness around the robot 1 and outputs the detection data to the CPU 11. The microphone 55 detects sound around the robot 1 and outputs the detected sound data to the CPU 11.

[0019] The communication unit 60 is a communication module that includes an antenna, a modulation / demodulation circuit, a signal processing circuit, etc., and performs wireless data communication with external devices in accordance with a predetermined communication standard.

[0020] The power supply unit 70 comprises a battery 71, a remaining charge detection unit 72, and a power receiving coil 73. The battery 71 supplies power to various parts of the robot 1. The battery 71 in this embodiment is a rechargeable battery that can be repeatedly charged using a contactless charging method. The remaining charge detection unit 72 detects the remaining charge of the battery 71 according to a control signal transmitted from the CPU 11 and outputs the detection result to the CPU 11. The charging operation of the battery 71 is performed when the robot 1 is stored (installed) inside a dedicated power supply unit (storage unit, charging dock) not shown. The power supply unit is equipped with a power transmission coil for charging the battery 71 by electromagnetic induction at a position opposite the power receiving coil 73 when the robot 1 is stored inside.

[0021] Next, the operation of robot 1 will be described. When an external stimulus is detected by each sensor of the sensor unit 50 or by the microphone 55, the CPU 11 of robot 1 causes robot 1 to perform a communication action corresponding to the detected external stimulus. Specifically, the CPU 11 identifies which of several actions (interactions) by the user, such as touching, hugging, or talking, caused the detected external stimulus, and causes robot 1 to perform a communication action corresponding to the identified action. That is, the CPU 11 operates the drive unit 40 according to the settings of the communication action and outputs sound from the sound output unit 30. The communication actions corresponding to each user action are predetermined and registered in the operation setting data 132. In addition, if no external stimulus is detected by the sensor unit 50 and the conditions for executing an automatically generated action are met, the CPU 11 causes robot 1 to perform a predetermined automatically generated action. The automatically generated actions may be actions generated by randomly determining the operation content of the drive unit 40 and the sound output unit 30, or they may be actions in which the operation content of the drive unit 40 and the sound output unit 30 is predetermined and registered in the operation setting data 132. Communication actions and automatically generated actions include, for example, nodding actions, looking up actions, and turning the head. The nodding action is an action in which the head 101 rotates around the first rotation axis 401 from the basic posture shown in Figure 2 so that the front-to-back axis 101a of the head 101 points downward below the horizontal plane, and then returns to the basic posture. The looking up action is an action in which the head 101 rotates around the first rotation axis 401 from the basic posture shown in Figure 2 so that the front-to-back axis 101a of the head 101 points upward above the horizontal plane, and then returns to the basic posture. The neck-twisting motion is a movement in which the head 101 rotates around the second rotation axis 402, starting from the basic posture shown in Figure 2, so that the left-right axis 101b of the head 101 repeatedly tilts upward and downward with respect to the horizontal plane, before returning to the basic posture.

[0022] In the stationary state of robot 1 after the communication or automatic generation operation has finished and it has returned to its basic posture, power supply to the vertical movement motor 41 and the twist motor 42 is stopped in order to reduce power consumption. As a result, the angle control by the vertical movement motor 41 and the twist motor 42 described above does not work. In other words, the vertical movement motor 41 and the twist motor 42 transition to a first state in which the rotation of the head 101 is not restricted.

[0023] In addition to communication and automatic generation actions, robot 1 performs horizontal head control that mimics the properties of living creatures. Generally, when the posture of a living creature's torso (tilt relative to the horizontal plane) changes, the creature exhibits a physiological reflex (righting response) that maintains the angle of its head relative to the horizontal plane regardless of the change in the posture of its torso. In other words, when the angle of a living creature's torso relative to the horizontal plane changes by a certain angle, the creature maintains the angle of its head relative to its torso by changing the angle of its head relative to its torso by the same amount in the opposite direction. Considering this righting response of living creatures, if the posture of the head 101 simply follows the change in the posture of the torso 103 of robot 1, it would be an unnatural movement for a living creature. Therefore, in order to reproduce the righting response of a living creature, the CPU 11 of robot 1 in this embodiment detects a change in the posture of the torso 103 and performs the following horizontal head control to maintain the posture of the head 101.

[0024] For example, if, starting from the state shown in Figure 2 where the robot 1 is placed on a horizontal plane and in its basic posture, the front-to-back axis 103a of the torso 103 changes by an angle θ from the horizontal plane H so that the rear of the torso 103 is lowered, as shown in Figure 4, the CPU 11 operates the vertical motor 41 to rotate the head 101 by an angle θ in the opposite direction to the torso 103. As a result, the front-to-back axis 101a of the head 101 remains parallel to the horizontal plane H. Also, if, starting from the state shown in Figure 2, the front-to-back axis 103a of the torso 103 changes by an angle θ from the horizontal plane H so that the rear of the torso 103 is raised, as shown in Figure 5, the CPU 11 operates the vertical motor 41 to rotate the head 101 by an angle θ in the opposite direction to the torso 103. As a result, the robot 1 maintains a posture in which the front-to-back axis 101a of the head 101 is parallel to the horizontal plane H. The angle θ of the front-to-rear axis 103a of the fuselage section 103 with respect to the horizontal plane H is derived by the CPU 11 based on, for example, the detection data of the acceleration sensor 52 and the gyro sensor 53.

[0025] Furthermore, as shown in Figure 6, when the robot 1 is placed on a horizontal plane and in its basic posture, if the left-right axis 103b of the torso 103 changes by an angle φ from the horizontal plane H so that the right side of the torso 103 rises, as shown in Figure 7, the CPU 11 operates the twist motor 42 to rotate the head 101 by an angle φ in the opposite direction to the torso 103. As a result, the left-right axis 101b of the head 101 maintains a state parallel to the horizontal plane H. Also, as shown in Figure 8, when the left-right axis 103b of the torso 103 changes by an angle φ from the horizontal plane H so that the right side of the torso 103 drops, the CPU 11 operates the twist motor 42 to rotate the head 101 by an angle φ in the opposite direction to the torso 103. As a result, the robot 1 maintains a posture in which the left-right axis 101b of the head 101 is parallel to the horizontal plane H. The angle φ of the left-right axis 103b of the fuselage section 103 with respect to the horizontal plane H is derived by the CPU 11 based on, for example, the detection data of the acceleration sensor 52 and the gyro sensor 53.

[0026] When the change in the posture of the torso 103 stops in the states shown in Figures 4, 5, 7, and 8, the amount of change (e.g., change angle) of the front-to-back axis 101a and / or left-to-right axis 101b from the basic posture is set as an offset value, and that state is designated as the provisional basic posture. Subsequent communication and automatic generation operations are then performed based on this provisional basic posture. For example, the nodding motion performed after the state shown in Figure 4 involves the head 101 rotating in a direction where the downward rotation angle of the front-to-back axis 101a is greater than the angle θ, before returning to the provisional basic posture shown in Figure 4.

[0027] In the provisional basic postures shown in Figures 4, 5, 7, and 8, the orientation of the head 101 relative to the orientation of the torso 103 differs from the original basic posture shown in Figure 2. More specifically, in Figures 4 and 5, the orientation of the front-to-back axis 101a of the head 101 relative to the orientation of the front-to-back axis 103a of the torso 103 differs from the original basic posture. Also, in Figures 7 and 8, the orientation of the left-to-right axis 103b of the head 101 relative to the orientation of the left-to-right axis 103b of the torso 103 differs from the original basic posture. As a result, in the provisional basic posture, the forces (tensile force, frictional force, etc.) that the head 101 receives from the exterior 200 tend to be greater than the tensile force received in the original basic posture. This is because the exterior 200 is designed to fit the outer shape of the main body 100 best in the original basic posture, that is, to minimize the force applied to the head 101. Therefore, in the provisional basic posture, forces that return the robot 1 to its original basic posture are easily applied to the head 101 from the exterior 200. Therefore, when the robot 1 is stationary in a provisional basic posture, if the power supply to the vertical motor 41 and the twist motor 42 is stopped, and angle control is disabled (first state where the rotation of the head 101 is not restricted), the orientation of the head 101 may change due to the force received from the outer casing 200. This can make the head 101 appear to be moving unintended.

[0028] Therefore, when stopping the rotation of the head 101, the CPU 11 of the robot 1 in this embodiment performs the following control. That is, when the CPU 11 stops the rotation of the head 101 around the first rotation axis 401, it determines whether the orientation of the front-rear axis 101a of the head 101 (orientation around the first rotation axis 401) is within the first angular range A shown in Figure 9. The first angular range A includes a predetermined first reference orientation. The first reference orientation is the orientation of the front-rear axis 101a in the original basic posture, that is, the same orientation as the front-rear axis 103a of the torso 103. The first angular range A may be, for example, ±15 degrees (30 degrees in total) centered on the first reference orientation. However, the first angular range A is not limited to this. The first angular range A is set within the range of orientation of the front-rear axis 101a such that the front-rear axis 101a of the head 101 does not move due to the force received from the outer casing 200 when the vertical movement motor 41 is not performing angle control (first state). When the CPU 11 determines that the orientation of the front-rear axis 101a of the head 101 is within the first angular range A, it controls the vertical movement motor 41 to enter a first state where the rotation of the head 101 is not restricted. That is, by stopping the power supply to the vertical movement motor 41 and ceasing angle control, the rotation of the head 101 around the first rotation axis 401 is not braked. When the orientation of the front-rear axis 101a is within the first angular range A, the head 101 does not rotate around the first rotation axis 401 due to the force received from the outer casing 200, so the power consumption of the vertical movement motor 41 can be reduced while suppressing unintended movements of the robot 1. On the other hand, if the CPU 11 determines that the orientation of the front-to-back axis 101a of the head 101 is not within the first angular range A, it controls the vertical movement motor 41 to enter a second state that restricts the rotation of the head 101. That is, by maintaining power supply to the vertical movement motor 41 and performing angle control, the rotation of the head 101 around the first rotation axis 401 is kept under braking. This prevents the head 101 from rotating around the first rotation axis 401 due to the force received from the exterior 200.Thus, switching the vertical motor 41 between the first and second states is equivalent to controlling the braking of the vertical rotation of the head unit 101, and will therefore be referred to as "vertical braking control" below.

[0029] Furthermore, when the CPU 11 stops the rotation of the head 101 around the second rotation axis 402, it determines whether the orientation of the left-right axis 101b of the head 101 (orientation around the second rotation axis 402) is within the second angular range B shown in Figure 10. The second angular range B includes a predetermined second reference orientation. The second reference orientation is the orientation of the left-right axis 101b in the original basic posture, i.e., the same orientation as the left-right axis 103b of the torso 103. The second angular range B may be, for example, ±15 degrees (30 degrees total) centered on the second reference orientation. However, the second angular range B is not limited to this. Also, the second angular range B may be different from the first angular range A. The second angular range B is set within the range of orientation of the left-right axis 101b such that the left-right axis 101b of the head 101 does not move due to the force received from the outer casing 200 when the twist motor 42 is not performing angular control (first state). When the CPU 11 determines that the orientation of the left-right axis 101b of the head 101 is within the second angular range B, it controls the twist motor 42 to return to the first state, which does not restrict the rotation of the head 101. That is, by stopping the power supply to the twist motor 42 and ceasing angular control, the rotation of the head 101 around the second rotation axis 402 is not braked. When the orientation of the left-right axis 101b is within the second angular range B, the head 101 does not rotate around the second rotation axis 402 due to the force received from the outer casing 200, so the power consumption of the twist motor 42 can be reduced while suppressing unintended movements of the robot 1. On the other hand, if the CPU 11 determines that the orientation of the left-right axis 101b of the head 101 is not within the second angular range B, it controls the twist motor 42 to enter a second state that restricts the rotation of the head 101. That is, by maintaining power supply to the twist motor 42 and performing angle control, the rotation of the head 101 around the second rotation axis 402 is kept under braking. This prevents the head 101 from rotating around the second rotation axis 402 due to the force received from the casing 200. Thus, switching the twist motor 42 between the first and second states is equivalent to controlling the braking of the rotation of the head 101 in the twisting direction, and will therefore be referred to as "braking control in the twisting direction" below.

[0030] The braking control in the vertical direction and the braking control in the twisting direction are performed independently. Therefore, if the orientation of the front-rear axis 101a of the head 101 is within the first angular range A, and the orientation of the left-right axis 101b of the head 101 is not within the second angular range B, the vertical motor 41 is in the first state and the twisting motor 42 is in the second state. Also, if the orientation of the front-rear axis 101a is not within the first angular range A, and the orientation of the left-right axis 101b is within the second angular range B, the vertical motor 41 is in the second state and the twisting motor 42 is in the first state. Also, if the orientation of the front-rear axis 101a is within the first angular range A, and the orientation of the left-right axis 101b is within the second angular range B, both the vertical motor 41 and the twisting motor 42 are in the first state. Furthermore, if the orientation of the front-rear axis 101a is not within the first angular range A, and the orientation of the left-right axis 101b is not within the second angular range B, then both the vertical movement motor 41 and the twist motor 42 are in the second state. Note that if one of the vertical movement motor 41 and the twist motor 42 is in the second state, the other may also be set to the second state to restrict the rotation of the head 101 with respect to either the first rotation axis 401 or the second rotation axis 402.

[0031] Next, with reference to Figures 11 to 13, the robot control processing performed by the CPU 11 to realize the above-described operation of the robot 1 will be explained. The robot control processing starts when the power to the robot 1 is turned on. When the robot control processing starts, the CPU 11 performs initialization processing (step S101). In the initialization processing, the CPU 11 operates the vertical movement motor 41 and the twist motor 42 so that the robot 1 assumes a basic posture. That is, the vertical movement motor 41 rotates the head 101 so that the front-to-back axis 101a of the head 101 is parallel to the front-to-back axis 103a of the body 103, and the twist motor 42 rotates the head 101 so that the left-to-right axis 101b of the head 101 is parallel to the left-to-right axis 103b of the body 103. In addition, the offset values ​​of the vertical movement motor 41 and the twist motor 42 are reset to 0.

[0032] The CPU 11 determines whether the sensor unit 50 has detected the above-mentioned external stimulus (step S102). If it determines that an external stimulus has been detected ("YES" in step S102), the CPU 11 determines whether it has detected a change in the posture of the torso unit 103 (step S103). Here, the CPU 11 detects the orientation of the front-rear axis 103a and the left-right axis 103b of the torso unit 103 based on the detection data of the acceleration sensor 52 and the gyro sensor 53, and determines that the posture of the torso unit 103 has changed if the orientation of at least one of the front-rear axis 103a and the left-right axis 103b has changed. If it determines that the posture of the torso unit 103 has changed ("YES" in step S103), the CPU 11 executes head horizontal control processing (step S104). As shown in Figure 12, when the head horizontal control process is started, the CPU 11 determines whether the orientation (angle with respect to the horizontal plane) of the front-rear axis 103a of the body 103 has changed (step S201). If it is determined that the orientation of the front-rear axis 103a has changed ("YES" in step S201), the CPU 11 rotates the head 101 with the vertical motor 41 so that the front-rear axis 101a of the head 101 is maintained horizontal (step S202). Here, the CPU 11 identifies the amount of change in the angle of the front-rear axis 103a of the body 103 with respect to the horizontal plane and rotates the front-rear axis 101a of the head 101 by the same angle in the opposite direction to the body 103. The CPU 11 also updates the offset value of the vertical motor 41 to a value corresponding to the angle after the rotation is completed (step S203).

[0033] If step S203 is completed, or if it is determined in step S201 that the orientation of the front-to-back axis 103a of the fuselage 103 has not changed ("NO" in step S201), the CPU 11 determines whether the orientation (angle with respect to the horizontal plane) of the left-to-right axis 103b of the fuselage 103 has changed (step S204). If it is determined that the orientation of the left-to-right axis 103b has changed ("YES" in step S204), the CPU 11 rotates the head 101 with the twist motor 42 so that the left-to-right axis 101b of the head 101 is maintained horizontally (step S205). Here, the CPU 11 identifies the amount of change in the angle of the left-to-right axis 103b of the fuselage 103 with respect to the horizontal plane, and rotates the left-to-right axis 101b of the head 101 by the same angle in the opposite direction to that of the fuselage 103. Furthermore, the CPU 11 updates the offset value of the twist motor 42 to a value corresponding to the angle after the rotation is completed (step S206).

[0034] If step S206 is completed, or if it is determined in step S204 that the orientation of the left-right axis 103b of the torso 103 has not changed ("NO" in step S204), the CPU 11 determines whether the change in the posture of the torso 103 has stopped based on the detection data of the acceleration sensor 52 and the gyro sensor 53 (step S207). If the CPU 11 determines that the change in the posture of the torso 103 has not stopped ("NO" in step S207), it returns to step S201. If it determines that the change in the posture of the torso 103 has stopped ("YES" in step S207), it terminates the head horizontal control process and returns to the robot control process shown in Figure 11.

[0035] If the head horizontal control process in step S104 of Figure 11 is completed, or if it is determined in step S103 that the posture of the torso 103 has not changed ("NO" in step S103), the CPU 11 causes the robot 1 to perform a communication action corresponding to the external stimulus detected in step S102 (step S105). Here, the CPU 11 refers to the operation setting data 132 to identify the communication action corresponding to the detected external stimulus. The CPU 11 then controls the vertical movement motor 41 and / or the twist motor 42 to rotate the head 101 and to output sound from the sound output unit 30 so that the robot 1 performs the communication action. Once the communication action is completed, the CPU 11 moves the process to step S110.

[0036] If it is determined in step S102 that no external stimulus has been detected ("NO" in step S102), the CPU 11 determines whether the conditions for executing the automatic generation operation are met (step S106). The conditions for executing the automatic generation operation may be, for example, that a predetermined waiting time has elapsed since the last communication operation or automatic generation operation was completed. The waiting time can be determined as appropriate, but may be, for example, several tens of seconds to several minutes. If it is determined that the conditions for executing the automatic generation operation are met ("YES" in step S106), the CPU 11 determines whether a change in the posture of the torso 103 has been detected (step S107). If it is determined that the posture of the torso 103 has changed ("YES" in step S107), the CPU 11 executes the head horizontal control process shown in Figure 12 (step S108). If the head horizontal control process in step S108 is completed, or if it is determined in step S107 that the posture of the torso 103 has not changed ("NO" in step S107), the CPU 11 causes the robot 1 to perform an automatic generation operation (step S109). Here, the CPU 11 controls the vertical movement motor 41 and / or the twist motor 42 to rotate the head 101 and also outputs sound from the sound output unit 30 so that the robot 1 performs a predetermined automatic generation operation or a randomly generated automatic generation operation. Once the automatic generation operation is completed, the CPU 11 moves the process to step S110.

[0037] The communication operation in step S105 and the automatic generation operation in step S109 are performed based on the posture represented by the offset values ​​of the vertical movement motor 41 and the twisting motor 42 at that time. That is, if the offset values ​​of both the vertical movement motor 41 and the twisting motor 42 are 0, the CPU 11 will perform each operation based on the basic posture shown in Figure 2. Also, if the offset value of at least one of the vertical movement motor 41 and the twisting motor 42 is not 0, the CPU 11 will perform each operation based on a provisional basic posture obtained by rotating the head 101 by an angle corresponding to that offset value.

[0038] When either step S105 or S109 is completed, that is, when the operation of the robot 1 in these steps is completed and the rotation of the head 101 is stopped, the CPU 11 executes braking control processing to perform the above-mentioned braking control in the vertical direction and braking control in the twisting direction (step S110). As shown in Figure 13, when the braking control processing is started, the CPU 11 determines whether the orientation of the front-rear axis 101a of the head 101 is within the first angular range A shown in Figure 9 (step S301). If it is determined that the orientation of the front-rear axis 101a is within the first angular range A ("YES" in step S301), the CPU 11 stops the power supply from the battery 71 to the vertical movement motor 41 and stops the angle control of the vertical movement motor 41 (step S302). In other words, the CPU 11 controls the vertical movement motor 41 to a first state in which the rotation of the head 101 around the first rotation axis 401 is not restricted. On the other hand, if the CPU determines that the orientation of the front-rear axis 101a is not within the first angular range A ("NO" in step S301), the CPU 11 maintains the power supply from the battery 71 to the up-down motor 41 and continues to control the angle of the up-down motor 41 (step S303). In other words, the CPU 11 controls the up-down motor 41 to a second state in which the rotation of the head 101 around the first rotation axis 401 is limited.

[0039] When step S302 or step S303 is completed, the CPU 11 determines whether the orientation of the left-right axis 101b of the head 101 is within the second angular range B shown in Figure 10 (step S304). If it is determined that the orientation of the left-right axis 101b is within the second angular range B ("YES" in step S304), the CPU 11 stops supplying power from the battery 71 to the twist motor 42 and stops the angle control of the twist motor 42 (step S305). That is, the CPU 11 controls the twist motor 42 to a first state in which the rotation of the head 101 around the second rotation axis 402 is not restricted. On the other hand, if it is determined that the orientation of the left-right axis 101b is not within the second angular range B ("NO" in step S304), the CPU 11 maintains the power supply from the battery 71 to the twist motor 42 and continues the angle control of the twist motor 42 (step S306). In other words, the CPU 11 controls the torsion motor 42 to enter a second state that limits the rotation of the head 101 around the second rotation axis 402. When step S305 or S306 is completed, the CPU 11 terminates the braking control process and returns the process to the robot control process shown in Figure 11.

[0040] When the braking control process in Figure 11 (step S110) is completed, the CPU 11 determines whether or not the operation to turn off the power of the robot 1 has been performed (step S111). If the CPU 11 determines that the operation has not been performed ("NO" in step S111), it returns to step S102. If it determines that the operation has been performed ("YES" in step S111), it terminates the robot control process. In Figure 11, an example is shown in which head horizontal control (steps S104, S108) is performed when performing communication operations and automatic generation operations. However, head horizontal control may also be performed when a change in the posture of the torso 103 is detected during other operations, such as breathing operations.

[0041] As described above, the robot 1 according to this embodiment includes a torso 103, a head 101 attached to the torso 103 so as to be rotatable around a first rotation axis 401 and a second rotation axis 402, an up-and-down motor 41 that rotates the head 101 around the first rotation axis 401, a twist motor 42 that rotates the head 101 around the second rotation axis 402, and a CPU 11. The CPU 11 controls the orientation of the head 101 around the first rotation axis 401 and the second rotation axis 402 by controlling the operation of the up-and-down motor 41 and the twist motor 42. When the CPU 11 stops the rotation of the head 101 around the first rotation axis 401, it determines whether the orientation of the front-rear axis 101a (the orientation of the head 101) is within a first angular range A. If it determines that the orientation of the front-rear axis 101a is within the first angular range A, it controls the up-down motor 41 to a first state in which the rotation of the head 101 is not restricted. If it determines that the orientation of the front-rear axis 101a is not within the first angular range A, it controls the up-down motor 41 to a second state in which the rotation of the head 101 is restricted. Furthermore, when the CPU 11 stops the rotation of the head 101 around the second rotation axis 402, it determines whether the orientation of the left and right axes 101b (the orientation of the head 101) is within the second angular range B. If it determines that the orientation of the left and right axes 101b is within the second angular range B, it controls the twist motor 42 to a first state in which the rotation of the head 101 is not restricted. If it determines that the orientation of the left and right axes 101b is not within the second angular range B, it controls the twist motor 42 to a second state in which the rotation of the head 101 is restricted. This allows the robot 1 to suppress unintended movements of the head 101 by restricting the rotation of the head 101 by setting the vertical motor 41 and / or the twist motor 42 to a second state when the head 101 may move unintendedly due to external forces or its own weight (when the front-rear axis 101a is not within the first angular range A, and / or the left-right axis 101b is not within the second angular range B). Thus, it is possible to suppress robot 1 from making movements that would be unnatural for a living creature.Furthermore, when there is a low possibility that the head 101 will perform unintended movements due to external forces or its own weight (when the front-rear axis 101a is within the first angular range A, and / or the left-right axis 101b is within the second angular range B), the power consumption of the vertical movement motor 41 and / or the twist motor 42 can be reduced by setting them to the first state and releasing the restriction on the rotation of the head 101.

[0042] Furthermore, the vertical movement motor 41 and the twist motor 42 are servo motors capable of rotating the head 101 in a specified direction and performing angle control to maintain that direction. The first state is when the vertical movement motor 41 and the twist motor 42 do not perform angle control, and the second state is when the vertical movement motor 41 and the twist motor 42 perform angle control. This allows the rotation of the head 101 to be restricted using the angle control of the servo motors. The restriction on the rotation of the head 101 can also be released by stopping the angle control. In addition, if the CPU 11 determines that the direction of the front-rear axis 101a is within the first angle range A, it controls the vertical movement motor 41 to return to the first state by stopping the power supply to the vertical movement motor 41. Also, if the CPU 11 determines that the direction of the left-right axis 101b is within the second angle range B, it controls the twist motor 42 to return to the first state by stopping the power supply to the twist motor 42. This allows switching from the second state to the first state with a simple control that turns off the power supply to the vertical motor 41 and / or the twist motor 42.

[0043] Furthermore, when the posture of the torso 103 changes, the CPU 11 rotates the head 101 using the vertical motor 41 and the twist motor 42 to maintain the posture of the head 101. When the change in the posture of the torso 103 stops, the CPU 11 determines whether the orientation of the front-to-back axis 101a of the head 101 is within a first angular range A, and whether the orientation of the left-to-right axis 101b of the head 101 is within a second angular range B. This allows the robot 1 to perform movements that mimic the righting reaction of a living creature, making the robot 1 appear more lifelike. In addition, even if the orientation of the head 101 relative to the torso 103 differs from the basic posture at the end of the movement mimicking the righting reaction, unintended movements of the head 101 can be suppressed. The robot 1 is also equipped with an outer casing 200 that covers the torso 103 and the head 101. The first angular range A is set within the range of orientation of the front-rear axis 101a such that the front-rear axis 101a of the head 101 does not move due to the force received from the outer casing 200 when the vertical motor 41 is in the first state. The second angular range B is set within the range of orientation of the left-right axis 101b such that the left-right axis 101b of the head 101 does not move due to the force received from the outer casing 200 when the twist motor 42 is in the first state. This prevents the head 101 from moving unintended due to the force received from the outer casing 200.

[0044] Furthermore, since the robot 1 has a torso 103 as a base and a head 101 as a movable part, unintended movements of the head 101 in the robot 1 can be suppressed. Also, according to the robot control method of this embodiment, the CPU 11 of the robot 1 can suppress unintended movements of the head 101 by performing the above-mentioned control. In addition, the program 131 of this embodiment can suppress unintended movements of the head 101 by causing the CPU 11 to perform the above-mentioned control.

[0045] It should be noted that the present invention is not limited to the above embodiments, and various modifications are possible. For example, in the above embodiments, an example was given in which the rotation of the head 101 is restricted by angle control of a servo motor as an embodiment in which the actuator in the second state restricts the rotation of the movable part, but it is not limited to this. For example, a brake to stop the rotation of the head 101 may be provided on the actuator independently of the angle control, and the rotation of the head 101 may be restricted by the CPU 11 controlling the brake. Also, in the second state, the positional relationship between the head 101 and the body 103 may be fixed by a predetermined locking mechanism. The specific configuration of the locking mechanism is not particularly limited, but for example, it may be a mechanism in which a protrusion directly or indirectly fixed to the body 103 is fitted into a recess provided at a position that is linked to the head 101.

[0046] Furthermore, while an example has been given of a configuration in which two actuators (a vertical motor 41 and a twisting motor 42) are provided to rotate the movable part around two rotation axes, the system is not limited to this, and a configuration in which the movable part is rotated around one rotation axis by a single actuator is also possible. Furthermore, the orientation of the head 101 around the first rotation axis 401 is not limited to the orientation of the front-rear axis 101a, but may be any orientation of an axis fixed to the head 101 and intersecting the first rotation axis 401. Similarly, the orientation of the head 101 around the second rotation axis 402 is not limited to the orientation of the left-right axis 101b, but may be any orientation of an axis fixed to the head 101 and intersecting the second rotation axis 402. Furthermore, while a servo motor powered by electricity was given as an example of an actuator, the invention is not limited to this. Any actuator is acceptable as long as it is capable of rotating a movable part and is switchable between a first state in which the rotation of the movable part is not restricted and a second state in which the rotation of the movable part is restricted. For example, the actuator may be an electromagnetic actuator powered by magnetism, a hydraulic actuator powered by hydraulic pressure, a pneumatic actuator powered by air pressure, and the like. Furthermore, although the explanation used an example in which the robot 1 is equipped with an outer casing 200 from the outset, the explanation is not limited to this. For example, if the robot 1 consists only of the main body 100, and the user later attaches an outer casing that mimics clothing, or an outer casing to protect the main body 100, the same control as in the above embodiment may be performed. Furthermore, the present invention may also be applied to a robot 1 that does not have an exterior 200. For example, if the movable part of the robot 1 moves due to its own weight when the orientation of the movable part is outside a predetermined angular range, the movement due to its own weight can be suppressed by setting the actuator to a second state. Furthermore, the configuration of robot 1 is not limited to those exemplified in Figures 1 to 3. For example, it may be a robot modeled after a real living creature such as a human, animal, bird, or fish; a robot modeled after a non-existent creature such as a dinosaur; or a robot modeled after a fictional creature. Furthermore, while the above description discloses an example in which the flash memory of the storage unit 13 is used as a computer-readable medium for the program according to the present invention, the invention is not limited to this example. Other computer-readable mediums that can be used include information recording media such as HDDs (Hard Disk Drives), SSDs (Solid State Drives), and CD-ROMs. Carrier waves can also be used in the present invention as a medium for providing data for the program according to the present invention via a communication line. Of course, the detailed configuration and detailed operation of each component of the robot 1 in the above embodiment can be appropriately modified without departing from the spirit of the present invention. Although embodiments of the present invention have been described, the scope of the present invention is not limited to the embodiments described above, but includes the scope of the invention as described in the claims and its equivalents. [Explanation of Symbols]

[0047] 1...Robot, 10...Robot control device, 11...CPU (processing unit, processing means), 41...Up / down motor (first actuator, servo motor), 42...Twist motor (second actuator, servo motor), 101...Head (movable part), 101a...Front / back axis (direction of movable part), 101b...Left / right axis (direction of movable part), 103...Body (base), 200...Exterior, 401...First rotation axis, 402...Second rotation axis, A...First angular range, B...Second angular range

Claims

1. The base and, A movable part is attached to the base so as to be rotatable around a predetermined axis of rotation, An actuator that rotates the movable part around the rotation axis, The system includes a processing unit that controls the orientation of the movable part around the rotation axis by controlling the operation of the actuator, The aforementioned processing unit, When stopping the rotation of the movable part, it is determined whether the orientation of the movable part is within a predetermined angular range that includes a predetermined reference orientation. If it is determined that the orientation is within the predetermined angular range, the actuator is controlled to enter a first state in which the rotation of the movable part is not restricted. If it is determined that the orientation is not within the predetermined angular range, the actuator is controlled to enter a second state that restricts the rotation of the movable part. robot.

2. The actuator is a servo motor capable of rotating the movable part in a specified direction and performing angle control to maintain that direction. The first state is a state in which the servo motor does not perform the angle control. The second state is a state in which the servo motor performs the angle control. The robot according to claim 1.

3. When the processing unit determines that the orientation is within the predetermined angular range, it controls the servo motor to enter the first state by stopping the power supply to the servo motor. The robot according to claim 2.

4. The processing unit rotates the movable part around the rotation axis using the actuator so that the position of the movable part is maintained when the position of the base changes. When the change in the posture of the base stops, it is determined whether the orientation of the movable part is within the predetermined angular range. The robot according to claim 1.

5. The exterior covers the base and the movable part, The predetermined angular range is set within the range of orientation of the movable part such that, when the actuator is in the first state, the movable part does not move due to the force received from the exterior. The robot according to claim 1.

6. The base is the torso of the robot, The aforementioned movable part is the head of the robot. The robot according to claim 1.

7. The first actuator rotates the movable part around the first rotation axis, A second actuator that rotates the movable part around a second rotation axis that intersects the first rotation axis, It has, The aforementioned processing unit, When stopping the rotation of the movable part around the first rotation axis, Determine whether the first orientation of the movable part around the first axis of rotation is within a predetermined first angular range that includes the first reference orientation. If it is determined that the first orientation is within the first angular range, the first actuator is controlled to enter the first state. If it is determined that the first orientation is not within the first angular range, the actuator is controlled to enter the second state. Furthermore, when stopping the rotation of the movable part around the second axis, It is determined whether the second orientation of the movable part around the second rotation axis is within a predetermined second angular range that includes the second reference orientation. If it is determined that the second orientation is within the second angular range, the second actuator is controlled to return to the first state. If it is determined that the second orientation is not within the second angular range, the second actuator is controlled to enter the second state. The robot according to claim 1.

8. A robot control method comprising a base, a movable part attached to the base so as to be rotatable around a predetermined axis of rotation, and an actuator for rotating the movable part around the axis of rotation, By controlling the operation of the actuator, the orientation of the movable part around the rotation axis is controlled. When stopping the rotation of the movable part, it is determined whether the orientation of the movable part is within a predetermined angular range that includes a predetermined reference orientation. If it is determined that the orientation is within the predetermined angular range, the actuator is controlled to enter a first state in which the rotation of the movable part is not restricted. If it is determined that the orientation is not within the predetermined angular range, the actuator is controlled to enter a second state that restricts the rotation of the movable part. Robot control methods.

9. A computer provided in a robot comprising a base, a movable part attached to the base so as to be rotatable around a predetermined axis of rotation, and an actuator for rotating the movable part around the axis of rotation, A processing means that controls the orientation of the movable part around the rotation axis by controlling the operation of the actuator. To make it function as, The processing means is When stopping the rotation of the movable part, it is determined whether the orientation of the movable part is within a predetermined angular range that includes a predetermined reference orientation. If it is determined that the orientation is within the predetermined angular range, the actuator is controlled to enter a first state in which the rotation of the movable part is not restricted. If it is determined that the orientation is not within the predetermined angular range, the actuator is controlled to enter a second state that restricts the rotation of the movable part. program.

Citation Information

Patent Citations

  • Autonomous walking robot device

    JP2002059389A