Robot, control method of robot, and computer program product
By determining the orientation of the movable part in the robot actuator control and applying braking when necessary, the problem of unintended activity of the robot's movable part during stop control is solved, achieving power saving and improved motion naturalness.
Patent Information
- Application Number
- CN202511344245.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-09-20
- Filing Date
- 2025-09-19
- Publication Date
- 2026-03-20
AI Technical Summary
If the movement of the robot's movable parts is not restricted when the movement control stops, unexpected movements may occur due to external forces or its own weight.
In the actuator control of the movable part, it is determined whether its orientation is within a predetermined angle range. If it is within the range, rotation is not restricted; otherwise, braking is applied to restrict rotation.
It effectively suppressed unintended movements of the movable parts, reduced power consumption, and maintained the naturalness of the robot's movements.
Smart Images

Figure CN121696930A_ABST
Abstract
Description
[0001] Cross Reference to Related Applications
[0002] This application claims priority and benefit of Japanese Patent Application No. 2024-163641 filed on September 20, 2024. The specification, claims, drawings of Japanese Patent Application No. 2024-163641 are hereby incorporated by reference in their entirety into the present specification. TECHNICAL FIELD
[0003] The present disclosure relates to a robot, a control method of a robot, and a computer program product. BACKGROUND
[0004] Conventionally, a technology of controlling movement of a movable portion of a robot by an actuator such as a servo motor is known (for example, Japanese Patent Application Publication No. 2002-59389). SUMMARY
[0005] -PROBLEMS TO BE SOLVED BY THE INVENTION-
[0006] However, when stopping the control based on the movement of the movable portion by the actuator, if the state where the movement of the movable portion is not limited is set, there is a case where the movable portion will move unexpectedly due to a force applied from the outside, a dead weight, or the like.
[0007] An object of the present disclosure is to suppress unexpected movement of a movable portion.
[0008] - MEANS FOR SOLVING THE PROBLEMS -
[0009] To solve the above problem, a robot according to the present disclosure includes a base, a movable portion mounted in a state capable of rotating around a given rotation axis with respect to the base, an actuator that rotates the movable portion around the rotation axis, and one or more processing portions that control an orientation of the movable portion around the rotation axis by controlling an operation of the actuator, wherein, in a case where the rotation of the movable portion is stopped by the one or more processing portions, it is determined whether the orientation of the movable portion is within a given angle range including a reference orientation that is determined in advance, in a case where it is determined that the orientation is within the given angle range, the actuator is controlled to a first state where the rotation of the movable portion is not limited, and in a case where it is determined that the orientation is not within the given angle range, the actuator is controlled to a second state where the rotation of the movable portion is limited.
[0010] - EFFECTS OF THE INVENTION -
[0011] According to the present disclosure, it is possible to suppress unexpected movement of a movable portion. BRIEF DESCRIPTION OF DRAWINGS
[0012] Figure 1is a diagram showing the appearance of the robot.
[0013] Figure 2 is a diagram showing the structure of the main body of the robot.
[0014] Figure 3 is a block diagram showing the functional structure of the robot.
[0015] Figure 4 is a diagram showing the main body of the robot with head horizontal control around the first rotation axis.
[0016] Figure 5 is a diagram showing the main body of the robot with head horizontal control around the first rotation axis.
[0017] Figure 6 is a diagram of the main body of the robot in a basic posture viewed from the front.
[0018] Figure 7 is a diagram showing the main body of the robot with head horizontal control around the second rotation axis.
[0019] Figure 8 is a diagram showing the main body of the robot with head horizontal control around the second rotation axis.
[0020] Figure 9 is a diagram showing a first angle range.
[0021] Figure 10 is a diagram showing a second angle range.
[0022] Figure 11 is a flowchart showing the control steps of the robot suppression processing.
[0023] Figure 12 is a flowchart showing the control steps of the head horizontal suppression processing.
[0024] Figure 13 is a flowchart showing the control steps of the brake control processing. DETAILED DESCRIPTION
[0025] Hereinafter, an embodiment of the present disclosure will be described based on the drawings. As used herein, the singular forms "a", "an" and "the" include plural referents unless the context clearly indicates otherwise. Figure 1As shown, robot 1 includes: a main body 100; and an outer casing 200 covering the entire surface of the main body 100. Robot 1 is a pet robot that mimics small creatures. Robot 1 can perform multiple different actions that mimic the behavior of a creature. The outer casing 200 is made of a soft material and deforms in response to the movement of the main body 100. The outer casing 200 may have, for example, fur made of plush fabric and decorative components that mimic eyes. On the back side of the outer casing 200 (the side in contact with the main body 100), there is a locking part (illustrated but not shown) that can engage with a latch provided on the surface of the main body 100. By engaging the locking part with the latch, the main body 100 and the outer casing 200 can be prevented from shifting significantly. The number of locking parts and latches is kept to a minimum so as not to hinder the movement of the main body 100, and the outer casing 200 is easy to assemble and disassemble. In this embodiment, the locking parts and latches are provided at three locations: the left and right eye positions of robot 1, and the rear end.
[0026] like Figure 2 As shown, the main body 100 of robot 1 includes: a head 101 as a movable part; a torso 103 as a base; and a connecting part 102 connecting the head 101 and the torso 103. Hereinafter, the posture and orientation of robot 1 will be described using an XYZ coordinate system defined by the X-axis and Y-axis parallel to the horizontal plane and the Z-axis pointing vertically upwards. Figure 2 In this configuration, robot 1 is placed on a horizontal surface with its left-right (width) direction parallel to the X-axis. The head 101 is mounted so that it can rotate relative to the torso 103 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 portion 102. Figure 2 The first rotation axis 401 is parallel to the Y-axis direction. Furthermore, the first rotation axis 401 is in a direction that intersects (or is orthogonal to) the second rotation axis 402. Figure 2 The direction parallel to the X-axis is the center. The direction parallel to the second rotation axis 402 is the front-back direction of robot 1. Furthermore, the direction from the torso 103 towards the head 101, in addition to the front-back direction, is the forward direction. Additionally, the direction perpendicular to the second rotation axis 402 and parallel to the horizontal plane when robot 1 is placed on a horizontal plane is the left-right direction of robot 1. Figure 2In the present embodiment, the +Y direction is the front direction, and the +X direction becomes the right direction. Hereinafter, an axis of a virtual axis fixed to the trunk 103, which is parallel to the front-rear direction and faces the front direction, is referred to as a "front-rear axis 103a", and an axis which is parallel to the left-right direction and faces the right direction is referred to as a "left-right axis 103b". Further, an axis of a virtual axis fixed to the head 101, which is parallel to the front-rear direction and faces the front direction in a state where the robot 1 becomes a given basic posture, is referred to as a "front-rear axis 101a", and an axis which is parallel to the left-right direction and faces the right direction in a state where the robot 1 becomes the basic posture is referred to as a "left-right axis 101b". The basic posture is Figure 2 the posture shown in FIG. 1, which is a posture in which the robot 1 appears to be facing the front without tilting the head 101. The left-right axis 101b of the head 101 is parallel to the first rotation axis 401. The front-rear axis 101a faces a direction equivalent to that when the head 101 rotates around the first rotation axis 401. The left-right axis 101b faces a direction equivalent to that when the head 101 rotates around the second rotation axis 402.
[0027] The main body 100 has a drive unit 40 for moving the head 101 relative to the torso 103. The drive unit 40 has a vertical motion motor 41 (first actuator) and a torsional motor 42 (second actuator). The vertical motion motor 41 is a servo motor that rotates the head 101 about a first rotation axis 401. For example, the first rotation axis 401 of the vertical motion motor 41 is fixed relative to the connecting part 102, and a servo horn of the vertical motion motor 41 is mounted on the head 101. Here, the servo horn is a part that rotates in conjunction with the rotation axis of the servo motor and is used to transmit the rotational motion of the servo motor to the outside. The vertical motion motor 41 enables the robot 1 to move the head 101 up and down. By moving the head 101 up and down, the front-rear axis 101a of the head 101 is oriented in a direction intersecting the horizontal plane. The torsional motor 42 is a servo motor that rotates the head 101 and the connecting part 102 about a second rotation axis 402. For example, the second rotation axis 402 of the torsion motor 42 is fixed relative to the torso 103, and the servo horn of the torsion motor 42 is mounted on the connecting part 102. The movement of the torsion motor 42 enables the robot 1 to rotate its head 101. By rotating the head 101, the left-right axis 101b of the head 101 becomes perpendicular to the horizontal plane. The direction of the head 101's vertical movement also becomes tilted relative to the vertical direction due to the angle of rotation of the head 101 by the torsion motor 42. By making the up-and-down movement motor 41 and / or the torsion motor 42 move slightly and periodically, the robot 1 can shake or tremble its head 101. By appropriately changing the timing, magnitude, and speed of the movements of the up-and-down movement motor 41 and the torsion motor 42, the robot 1 can perform various actions, such as joyful actions, surprised actions, and breathing actions mimicking biological respiration. Breathing is one type of spontaneous action of the robot 1.
[0028] like Figure 2 As shown, the main body 100 includes a first touch sensor 51a, a second touch sensor 51b, an accelerometer 52, a gyroscope 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 located on the upper part of the head 101. The second touch sensor 51b is located on the upper part and side of the torso 103. Hereinafter, either the first touch sensor 51a or the second touch sensor 51b will be referred to as "touch sensor 51". The accelerometer 52, the gyroscope 53, and the power receiving coil 73 are located near the lower surface of the torso 103. The illuminance sensor 54 and the sound output unit 30 are located on the upper part of the torso 103. The microphone 55 is located on the upper part near the base of the head 101.
[0029] like Figure 3As illustrated, the robot 1 is provided with a CPU 11 (Central Processing Unit) (one or more processing sections, processing units), a RAM 12 (Random Access Memory), a storage section 13, an operation section 20, a sound output section 30, a drive section 40, a sensor section 50, a communication section 60, and a power supply section 70. The respective sections of the robot 1 are connected via a data transmission path such as a bus. Figure 3 Each of the functional structures illustrated is provided in the main body 100. The robot control device 10 that controls the action of the robot 1 is constituted by the CPU 11, the RAM 12, and the storage section 13.
[0030] The CPU 11 is a processor that controls the action of the robot 1 by reading out and executing the program 131 stored in the storage section 13 and performing various arithmetic processes. In addition, the robot 1 can have a plurality of processors (for example, a plurality of CPUs) that can perform a plurality of processes performed by the CPU 11 of the present embodiment. In this case, one or more processing sections are constituted by the plurality of processors. In this case, the plurality of processors can participate in common processing, or the plurality of processors can independently perform different processing in parallel. The RAM 12 provides a memory space for use in processing to the CPU 11 and stores temporary data.
[0031] The storage section 13 is a non-transitory recording medium that can be read by the CPU 11 as a computer and stores the program 131 and various data. The storage section 13 includes, for example, a non-volatile memory such as a flash memory. The program 131 is stored in the storage section 13 in the form of a program code that can be read by a computer. As the data stored in the storage section 13, there is action setting data 132 and the like. In the action setting data 132, the action content of the action of the robot 1 corresponding to the state of the robot 1, the content of the communication of the robot 1 in response to a stimulus from the outside, and the like, and the action of the robot 1 that is autonomously performed without dependence on a stimulus from the outside, and the breathing action and the like are set. The autonomously performed action looks like an impulsive action of the robot 1, and thus can also be referred to as an impulsive action. The setting involved in the action content includes, for example, the setting of the action timing and the action amount of the up-and-down movement motor 41 and the twist motor 42 of the drive section 40, and the setting of the pitch (highness or lowness), the length, and the volume of the sound output by the sound output section 30, and the like.
[0032] The operation section 20 is provided with an operation button and an operation knob or the like for turning on and off the power source, adjusting the volume of the output sound of the sound output section 30, and the like. The operation section 20 outputs operation information corresponding to an input operation of the operation button and the operation knob or the like to the CPU 11. The sound output section 30 is provided with a speaker to output sound with a pitch (highness or lowness), length, and volume corresponding to a control signal and sound data transmitted from the CPU 11. The sound can be a sound imitating a call of a living creature.
[0033] The drive section 40 causes the up-and-down moving motor 41 and the twisting motor 42 to act in accordance with a control signal transmitted from the CPU 11. As described above, both the up-and-down moving motor 41 and the twisting motor 42 are servo motors. A servo motor is provided with a motor having a rotor rotating inside a stator, a driver supplying electric power to the motor to drive the motor, and an encoder detecting a rotation angle (rotation position) of the rotor. In the stator, a plurality of windings are provided at positions surrounding the rotor. A magnetic field is generated at the position of the rotor in correspondence with a current supplied to the windings from the driver, and the rotor is rotated by a force through a change in the magnetic field. Further, a detection result of the rotation angle of the rotor of the encoder is fed back to the driver, and the driver drives the motor so that the rotation angle of the rotor becomes an angle instructed from the CPU 11. A servo motor having such a mechanism can rotate a movable section (in the present embodiment, the head section 101) of a moving object toward an instructed orientation, and perform angle control to maintain the orientation. In a case where the orientation of the movable section is to be changed by an external force or a self-weight during the angle control by the servo motor, feedback control acts, and thus the servo motor acts so that the change in the orientation does not occur. Thus, the orientation of the movable section is maintained at the instructed orientation. As such, the function of maintaining the orientation of the movable section can also be said to be a function of applying a brake (brake) to the movable section. That is, the servo motor can restrict the rotation of the movable section from the instructed orientation by performing the angle control. Since the angle control is no longer performed if the supply of electric power to the servo motor is stopped, the function of restricting the rotation of the movable section no longer acts. A state where the servo motor does not perform the angle control corresponds to a first state where the rotation of the movable section is not restricted. Further, a state where the servo motor is performing the angle control corresponds to a second state where the rotation of the movable section is restricted.
[0034] The sensor unit 50 includes the first touch sensor 51a, the second touch sensor 51b, the accelerometer 52, the gyroscope 53, the illuminance sensor 54, and the microphone 55, and outputs the detection results of each sensor and the microphone 55 to the CPU 11. The touch sensor 51 detects contact between the user, other objects, and the robot 1. The touch sensor 51 may include, for example, a pressure sensor or a capacitive sensor, and outputs detection data regarding whether or not contact with the robot 1 occurs to the CPU 11. The accelerometer 52 detects acceleration in each of the three orthogonal axes and outputs the detection data to the CPU 11. The gyroscope 53 detects angular velocity in each of the three orthogonal axes 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.
[0035] The communication unit 60 is a communication module that includes an antenna, modulation and demodulation circuits, signal processing circuits, etc., and performs wireless data communication with external devices according to a given communication standard.
[0036] The power supply unit 70 includes a battery 71, a remaining power detection unit 72, and a power receiving coil 73. The battery 71 supplies power to various parts of the robot 1. In this embodiment, the battery 71 is a rechargeable battery that can be repeatedly charged via contactless charging. The remaining power detection unit 72 detects the remaining power of the battery 71 according to a control signal sent from the CPU 11 and outputs the detection result to the CPU 11. The battery 71 is charged while the robot 1 is stored (installed) inside a dedicated power supply unit (storage unit, charging dock) (not shown). The power supply unit, with the robot 1 stored inside, has a power supply coil positioned opposite the power receiving coil 73 for charging the battery 71 via electromagnetic induction.
[0037] Next, the operation of the robot 1 will be described. When the CPU 11 of the robot 1 detects an external stimulus by each sensor of the sensor section 50 or the microphone 55, the robot 1 is caused to perform a communication operation corresponding to the detected external stimulus. In detail, the CPU 11 determines whether the detected external stimulus is caused by any of a plurality of actions (applied actions) of a user's touch, a pick-up, a greeting, and the like, and causes the robot 1 to perform a communication operation corresponding to the determined action. That is, the CPU 11 causes the drive section 40 to operate in accordance with the set contents of the communication operation, and causes the sound output section 30 to output a sound. The communication operation corresponding to each action of the user is determined in advance and registered in the operation setting data 132. Further, the CPU 11 causes the robot 1 to perform a given automatic operation in a case where no external stimulus is detected by the sensor section 50 and the execution condition of the automatic operation is satisfied. The automatic operation can be an operation generated by randomly determining the operation contents of the drive section 40 and the sound output section 30, or an operation in which the operation contents of the drive section 40 and the sound output section 30 are determined in advance and registered in the operation setting data 132. The communication operation and the automatic operation include, for example, a nodding operation, a head-up operation, a head-tilting operation, and the like. The nodding operation is an operation in which the head 101 is turned around the first rotation axis 401 from the basic posture shown in FIG. 10 to make the front-rear axis 101a of the head 101 face a lower side than a horizontal plane, and then returns to the basic posture. The head-up operation is an operation in which the head 101 is turned around the first rotation axis 401 from the basic posture shown in FIG. 11 to make the front-rear axis 101a of the head 101 face an upper side than the horizontal plane, and then returns to the basic posture. The head-tilting operation is an operation in which the head 101 is turned around the second rotation axis 402 from the basic posture shown in FIG. 12 to make the left-right axis 101b of the head 101 repeatedly tilt upward and downward with respect to the horizontal plane, and then returns to the basic posture. Figure 2 Figure 2 Figure 2
[0038] In a stationary state of the robot 1 after the communication operation or the automatic operation ends and returns to the basic posture, the power supply to the up-and-down moving motor 41 and the twisting motor 42 is stopped for the purpose of suppressing power consumption. Thus, the above-described angle control of the up-and-down moving motor 41 and the twisting motor 42 is in a state of not functioning. That is, the up-and-down moving motor 41 and the twisting motor 42 shift to the first state in which the turning of the head 101 is not restricted.
[0039] In addition to performing communication actions and automatically generating actions, robot 1 also performs head level control that mimics the properties of living organisms. Generally, when the posture of an organism's torso (the angle of inclination relative to the horizontal plane) changes, it exhibits a physiological reflex (righting response) that maintains the angle of its head relative to the horizontal plane independently of the change in torso posture. In other words, an organism has the property that when the angle of its torso relative to the horizontal plane changes by a certain angle, it maintains the angle of its head relative to the horizontal plane by changing the angle of its head relative to the torso in the opposite direction. If we consider such a righting response of a living organism, when the posture of the robot 1's torso 103 changes, only the posture of its head 101 changes accordingly, thus becoming unnatural as a living organism's activity. Therefore, in this embodiment, if the CPU 11 of robot 1 detects a change in the posture of the torso 103, it performs head level control as follows in order to maintain the posture of the head 101, thereby reproducing the righting response of a living organism.
[0040] For example, in the case of Figure 2 As shown, robot 1 is placed on a horizontal surface and assumes a basic posture. Figure 4 As shown, when the front-rear axis 103a of the torso 103 changes angle θ from the horizontal plane H to lower the rear of the torso 103, the CPU 11 actuates the up-and-down motion motor 41, causing the head 101 to rotate angle θ in the opposite direction to the torso 103. As a result, the front-rear axis 101a of the head 101 remains parallel to the horizontal plane H. Furthermore, when moving from... Figure 2 The state shown is as follows Figure 5 As shown, when the front-rear axis 103a of the torso 103 changes by an angle θ from the horizontal plane H to raise the rear of the torso 103, the CPU 11 actuates the up-and-down motion motor 41, causing the head 101 to rotate by an angle θ in the opposite direction to the torso 103. As a result, the robot 1 maintains an orientation where the front-rear axis 101a of the head 101 is parallel to the horizontal plane H. For example, the CPU 11 derives the angle θ of the front-rear axis 103a of the torso 103 relative to the horizontal plane H based on the detection data from the accelerometer 52 and the gyroscope 53.
[0041] Furthermore, from such Figure 6 As shown, robot 1 is placed on a horizontal surface and assumes a basic posture. Figure 7 As shown, when the left and right axes 103b of the torso 103 change angle φ from the horizontal plane H to raise the right side of the torso 103, the CPU 11 actuates the torsional motor 42, causing the head 101 to rotate angle φ in the opposite direction to the torso 103. As a result, the left and right axes 101b of the head 101 remain parallel to the horizontal plane H. Furthermore, when from... Figure 6The state shown as Figure 8 In a case where the left and right axes 103b of the trunk 103 are changed in angle φ from the horizontal plane H so that the right side of the trunk 103 is lowered as shown, the CPU 11 causes the twist motor 42 to operate so as to rotate the head 101 in angle φ in the direction opposite to the trunk 103. As a result, the robot 1 maintains the posture in which the left and right axes 101b of the head 101 are parallel to the horizontal plane H. For example, the CPU 11 derives the angle φ of the left and right axes 103b of the trunk 103 with respect to the horizontal plane H on the basis of the detection data of the acceleration sensor 52 and the gyro sensor 53.
[0042] In a case where the change in the posture of the trunk 103 is stopped in the state shown as Figure 4 , Figure 5 , Figure 7 , Figure 8 The change amount (for example, the change angle) of the front and rear axis 101a and / or the left and right axis 101b from the basic posture is set to the offset value, and the state thereof is set to the provisional basic posture. Then, the subsequent communication action and the automatically generated action are performed on the basis of the provisional basic posture. For example, the nodding action performed after the state shown as Figure 4 becomes the action in which, after the head 101 is rotated in the direction in which the rotation angle in the downward direction of the front and rear axis 101a becomes further larger than the angle θ, the head 101 returns to the provisional basic posture shown as Figure 4 .
[0043] In the provisional basic posture shown as Figure 4 , Figure 5 , Figure 7 , Figure 8 The orientation of the head 101 with respect to the orientation of the trunk 103 is different from the original basic posture shown as Figure 2 . In detail, in Figure 4 and Figure 5 , the orientation of the front and rear axis 101a of the head 101 with respect to the orientation of the front and rear axis 103a of the trunk 103 is different from the original basic posture. In addition, in Figure 7 and Figure 8In the provisional basic posture, the orientation of the left and right axes 103b of the head 101 with respect to the left and right axes 103b of the torso 103 is different from that in the original basic posture. For this reason, in the provisional basic posture, the force (stretching force, frictional force, etc.) received by the head 101 from the outer cover 200 tends to become larger than the stretching force received in the original basic posture. This is because the outer cover 200 is designed to best fit the outer shape of the main body 100 in the original basic posture, that is, it is most difficult to apply a force to the head 101. Thus, in the provisional basic posture, it is easy for the head 101 to receive a force from the outer cover 200 that is oriented to return the robot 1 to the original basic posture. For this reason, in the case where the robot 1 is stationary in the provisional basic posture, if the power supply to the up-and-down moving motor 41 and the twisting motor 42 is stopped and the robot 1 is set to a state in which the angle control does not function (a first state in which the rotation of the head 101 is not limited), the orientation of the head 101 can sometimes change due to the force received from the outer cover 200. As a result, it can appear as if the head 101 is performing an unintended movement.
[0044] For this reason, the CPU 11 of the robot 1 of the present embodiment, in the case where the rotation of the head 101 is stopped, performs the following control. That is, the CPU 11, in the case where the rotation of the head 101 around the first rotation axis 401 is stopped, determines whether the orientation of the front and rear axis 101a of the head 101 (the orientation around the first rotation axis 401) is in the first range or the second range. Figure 9The first angle range A is set within a range in which the front-rear axis 101a of the head 101 does not move due to a force received from the outer cover 200, in a case where the up-down moving motor 41 does not perform angle control (in a case of the first state). The CPU 11 controls the up-down moving motor 41 to the first state in which the rotation of the head 101 is not restricted, in a case where it is determined that the orientation of the front-rear axis 101a of the head 101 is within the first angle range A. That is, the power supply to the up-down moving motor 41 is stopped, and the angle control is suspended, and thus the state in which the rotation of the head 101 around the first rotation axis 401 is not braked is set. In a case where the orientation of the front-rear axis 101a is within the first angle range A, the head 101 does not rotate around the first rotation axis 401 due to a force received from the outer cover 200, and thus the consumption power of the up-down moving motor 41 can be suppressed while suppressing unintended movement of the robot 1. On the other hand, the CPU 11 controls the up-down moving motor 41 to the second state in which the rotation of the head 101 is restricted, in a case where it is determined that the orientation of the front-rear axis 101a of the head 101 is not within the first angle range A. That is, the power supply to the up-down moving motor 41 is maintained, and the angle control is performed, and thus the state in which the rotation of the head 101 around the first rotation axis 401 is braked can be maintained. Thus, the head 101 can not rotate around the first rotation axis 401 due to a force received from the outer cover 200. As described above, since the up-down moving motor 41 is switched between the first state and the second state, the rotation of the head 101 in the up-down direction is controlled, and thus the following is also referred to as "braking control in the up-down direction".
[0045] Further, the CPU 11 determines whether the orientation of the left-right axis 101b of the head 101 (the orientation around the second rotation axis 402) is within a second angle range B in a case where the rotation of the head 101 around the second rotation axis 402 is stopped. Figure 10The second angle range B is set within a range in which the left-right axis 101b of the head 101 does not move due to the force received from the outer cover 200. The CPU 11 controls the twisting motor 42 to the first state in which the rotation of the head 101 is not restricted, in a case where it is determined that the orientation of the left-right axis 101b of the head 101 is within the second angle range B. That is, the power supply to the twisting motor 42 is stopped, and the angle control is suspended, whereby the state in which the rotation of the head 101 around the second rotation axis 402 is not braked is set. In a case where the orientation of the left-right axis 101b is within the second angle range B, the head 101 does not rotate around the second rotation axis 402 due to the force received from the outer cover 200, and thus, the consumption power of the twisting motor 42 can be suppressed while suppressing unintended movement of the robot 1. On the other hand, the CPU 11 controls the twisting motor 42 to the second state in which the rotation of the head 101 is restricted, in a case where it is determined that the orientation of the left-right axis 101b of the head 101 is not within the second angle range B. That is, the power supply to the twisting motor 42 is maintained, and the angle control is performed, whereby the state in which the rotation of the head 101 around the second rotation axis 402 is braked is maintained. Thus, the head 101 can not rotate around the second rotation axis 402 due to the force received from the outer cover 200. Switching the twisting motor 42 between the first state and the second state as such corresponds to controlling the braking with respect to the rotation of the head 101 in the twisting direction, and thus, is also referred to as "braking control in the twisting direction" below.
[0046] The up-and-down direction brake control and the twisting direction brake control are independently performed. Thus, in a case where the orientation of the front-and-rear axis 101a of the head 101 is within the first angle range A and the orientation of the left-and-right axis 101b of the head 101 is not within the second angle range B, the up-and-down movable motor 41 is set to the first state and the twisting motor 42 is set to the second state. Further, in a case where the orientation of the front-and-rear axis 101a is not within the first angle range A and the orientation of the left-and-right axis 101b is within the second angle range B, the up-and-down movable motor 41 is set to the second state and the twisting motor 42 is set to the first state. Further, in a case where the orientation of the front-and-rear axis 101a is within the first angle range A and the orientation of the left-and-right axis 101b is within the second angle range B, both the up-and-down movable motor 41 and the twisting motor 42 are set to the first state. Further, in a case where the orientation of the front-and-rear axis 101a is not within the first angle range A and the orientation of the left-and-right axis 101b is not within the second angle range B, both the up-and-down movable motor 41 and the twisting motor 42 are set to the second state. In addition, in a case where one of the up-and-down movable motor 41 and the twisting motor 42 is set to the second state, the other can also be set to the second state, and neither of the first rotary shaft 401 and the second rotary shaft 402 is restricted in the rotation of the head 101.
[0047] Next, the robot control processing performed by the CPU 11 in order to realize the above-described movement of the robot 1 will be described with reference to Figure 11-13 The robot control processing is started in a case where the power of the robot 1 is turned on. If the robot control processing is started, the CPU 11 performs an initialization processing (step S101). In the initialization processing, the CPU 11 causes the up-and-down movable motor 41 and the twisting motor 42 to operate so that the robot 1 becomes a basic posture. That is, the head 101 is rotated by the up-and-down movable motor 41 so that the front-and-rear axis 101a of the head 101 becomes parallel to the front-and-rear axis 103a of the trunk 103, and the head 101 is rotated by the twisting motor 42 so that the left-and-right axis 101b of the head 101 becomes parallel to the left-and-right axis 103b of the trunk 103. Further, the offset values of the up-and-down movable motor 41 and the twisting motor 42 are reset to 0.
[0048] CPU 11 determines whether sensor unit 50 has detected the aforementioned external stimulus (step S102). If it is determined that an external stimulus has been detected ("Yes" in step S102), CPU 11 determines whether a change in the posture of torso 103 has been detected (step S103). Here, CPU 11 detects the orientation of the front-back axis 103a and the left-right axis 103b of torso 103 based on the detection data from accelerometer 52 and gyroscope 53. If the orientation of at least one of the front-back axis 103a and the left-right axis 103b changes, it is determined that the posture of torso 103 has changed. If it is determined that the posture of torso 103 has changed ("Yes" in step S103), CPU 11 performs head leveling control processing (step S104). Figure 12 As shown, when head leveling control processing begins, the CPU 11 determines whether the orientation (angle relative to the horizontal plane) of the front-rear axis 103a of the torso 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 using the up-and-down motion motor 41 to keep the front-rear axis 101a of the head 101 horizontal (step S202). Here, the CPU 11 determines the amount of change in the angle of the front-rear axis 103a of the torso 103 relative 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 torso 103. Furthermore, the CPU 11 updates the offset value of the up-and-down motion motor 41 to a value corresponding to the angle after the rotation ends (step S203).
[0049] If step S203 ends, or if it is determined in step S201 that the orientation of the front-rear axis 103a of the torso 103 has not changed ("No" in step S201), the CPU 11 determines whether the orientation (angle relative to the horizontal plane) of the left-right axis 103b of the torso 103 has changed (step S204). If it is determined that the orientation of the left-right axis 103b has changed ("Yes" in step S204), the CPU 11 rotates the head 101 by the torsion motor 42 so that the left-right axis 101b of the head 101 remains horizontal (step S205). Here, the CPU 11 determines the amount of change in the angle of the left-right axis 103b of the torso 103 relative to the horizontal plane, and rotates the left-right axis 101b of the head 101 in the opposite direction to the torso 103 by the same angle. In addition, the CPU 11 updates the offset value of the torsion motor 42 to the value corresponding to the angle after the rotation ends (step S206).
[0050] If step S206 ends, or if it is determined in step S204 that the orientation of the left and right axes 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 accelerometer 52 and the gyroscope 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 ends the head level control process and returns to the previous step. Figure 11 Robot control processing.
[0051] exist Figure 11 If the head level control processing in step S104 ends, 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 an interactive action corresponding to the external stimulus detected in step S102 (step S105). Here, the CPU 11 refers to the action setting data 132 to determine the interactive action corresponding to the detected external stimulus. Then, the CPU 11 controls the up-and-down movement motor 41 and / or the torsion motor 42 to rotate the head 101, and also causes sound to be output from the sound output unit 30 so that the robot 1 performs the interactive action. If the interactive action ends, the CPU 11 moves the processing to step S110.
[0052] If, in step S102, it is determined that no external stimulus is detected ("No" in step S102), the CPU 11 determines whether the execution conditions for automatically generated actions are met (step S106). The execution conditions for automatically generated actions can be, for example, set to the last executed communication action or a given action standby time elapsed after the automatic generated action ended. The action standby time can be appropriately determined, but can be, for example, set to tens of seconds to several minutes. If, in the case that the execution conditions for automatically generated actions are met ("Yes" in step S106), the CPU 11 determines whether a change in the posture of the torso 103 is detected (step S107). If, in the case that the posture of the torso 103 has changed ("Yes" in step S107), the CPU 11 executes... Figure 12The head leveling control process is then performed (step S108). If the head leveling control process in step S108 ends, 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 automatically generated action (step S109). Here, the CPU 11 controls the up-and-down movement motor 41 and / or the torsional motor 42 to rotate the head 101, and also outputs sound from the sound output unit 30 to cause the robot 1 to perform a given automatically generated action or a randomly generated automatically generated action. If the automatically generated action ends, the CPU 11 transfers the processing to step S110.
[0053] The interaction action in step S105 and the automatic generation action in step S109 are performed based on the posture represented by the offset values of the up-and-down moving motor 41 and the torsional motor 42 at that time point. That is, when the offset values of the up-and-down moving motor 41 and the torsional motor 42 are both 0, the CPU 11... Figure 2 The basic posture shown is used as a reference to perform each action. In addition, when the offset value of at least one of the up-and-down movement motor 41 and the torsion motor 42 is not 0, the CPU11 performs each action based on a provisional basic posture in which the head 101 rotates at an angle corresponding to the offset value.
[0054] When either step S105 or S109 is completed, that is, when the robot 1's movement in these processes ends and the rotation of the head 101 stops, the CPU 11 executes braking control processing (step S110) for performing the aforementioned braking control in the vertical direction and braking control in the torsional direction. Figure 13 As shown, if the braking control process begins, the CPU 11 determines whether the orientation of the front and rear axles 101a of the head 101 is in the correct position. Figure 9 Within the first angle range A shown (step S301). If it is determined that the orientation of the front and rear shafts 101a is within the first angle range A ("Yes" in step S301), the CPU 11 stops the power supply from the battery 71 to the up-and-down motion motor 41, thereby stopping the angle control of the up-and-down motion motor 41 (step S302). That is, the CPU 11 controls the up-and-down motion motor 41 in a first state where the rotation of the head 101 around the first rotation axis 401 is not restricted. On the other hand, if it is determined that the orientation of the front and rear shafts 101a is not within the first angle range A ("No" in step S301), the CPU 11 maintains the power supply from the battery 71 to the up-and-down motion motor 41, thereby continuing the angle control of the up-and-down motion motor 41 (step S303). That is, the CPU 11 controls the up-and-down motion motor 41 in a second state where the rotation of the head 101 around the first rotation axis 401 is restricted.
[0055] If step S302 or step S303 ends, CPU 11 determines whether the orientation of the left and right axes 101b of the head 101 is in the correct position. Figure 10 Within the second angle range B shown (step S304). If it is determined that the orientation of the left and right axes 101b is within the second angle range B ("Yes" in step S304), the CPU 11 stops the power supply from the battery 71 to the torque motor 42, causing the angle control of the torque motor 42 to stop (step S305). That is, the CPU 11 controls the torque motor 42 in a first state where 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 and right axes 101b is not within the second angle range B ("No" in step S304), the CPU 11 maintains the power supply from the battery 71 to the torque motor 42, causing the angle control of the torque motor 42 to continue (step S306). That is, the CPU 11 controls the torque motor 42 in a second state where the rotation of the head 101 around the second rotation axis 402 is restricted. If steps S305 or S306 end, the CPU 11 ends the braking control process and returns the process to the second state. Figure 11 Robot control processing.
[0056] like Figure 11 After the braking control process (step S110) ends, the CPU 11 determines whether the operation of disconnecting the power supply to robot 1 has been performed (step S111). If the CPU 11 determines that the operation has not been performed ("No" in step S111), the process returns to step S102; if the CPU 11 determines that the operation has been performed ("Yes" in step S111), the robot control process ends. Additionally, in Figure 11 The example illustrates the method of performing head level control (steps S104 and S108) when performing communication actions and automatically generated actions, but head level control can also be performed when other actions, such as breathing actions, are detected, resulting in a change in the posture of the torso 103.
[0057] As above, the robot 1 according to the present embodiment includes the trunk 103, the head 101 mounted so as to be able to turn around the first rotation axis 401 and the second rotation axis 402 with respect to the trunk 103, the up-and-down moving motor 41 that turns the head 101 around the first rotation axis 401, the twist motor 42 that turns the head 101 around the second rotation axis 402, and the CPU 11. The CPU 11 controls the orientation of the first rotation axis 401 and the head 101 around the second rotation axis 402 by controlling the operation of the up-and-down moving motor 41 and the twist motor 42. The CPU 11 determines whether the orientation of the front-and-rear axis 101a (the orientation of the head 101) is within the first angle range A with the turning of the head 101 around the first rotation axis 401 stopped, and controls the up-and-down moving motor 41 to the first state in which the turning of the head 101 is not restricted when it is determined that the orientation of the front-and-rear axis 101a is within the first angle range A, and controls the up-and-down moving motor 41 to the second state in which the turning of the head 101 is restricted when it is determined that the orientation of the front-and-rear axis 101a is not within the first angle range A. Further, the CPU 11 determines whether the orientation of the left-and-right axis 101b (the orientation of the head 101) is within the second angle range B with the turning of the head 101 around the second rotation axis 402 stopped, and controls the twist motor 42 to the first state in which the turning of the head 101 is not restricted when it is determined that the orientation of the left-and-right axis 101b is within the second angle range B, and controls the twist motor 42 to the second state in which the turning of the head 101 is restricted when it is determined that the orientation of the left-and-right axis 101b is not within the second angle range B. Thus, in the case where there is a possibility that the head 101 will move unexpectedly due to an external force or its own weight (in the case where the front-and-rear axis 101a is within the first angle range A and / or in the case where the left-and-right axis 101b is not within the second angle range B), the turning of the head 101 is restricted by setting the up-and-down moving motor 41 and / or the twist motor 42 to the second state, and the unexpected movement of the head 101 can be suppressed.
[0058] Thus, the robot 1 can be prevented from moving in a manner that is not in harmony with a living being. Further, in the case where there is a low possibility that the head 101 will move unexpectedly due to an external force or its own weight (in the case where the front-and-rear axis 101a is within the first angle range A and / or in the case where the left-and-right axis 101b is within the second angle range B), the restriction on the turning of the head 101 is removed by setting the up-and-down moving motor 41 and / or the twist motor 42 to the first state, and the power consumption of the up-and-down moving motor 41 and the twist motor 42 can be reduced.
[0059] Further, the up-and-down moving motor 41 and the twisting motor 42 are servo motors capable of performing angle control to turn the head 101 toward an indicated direction and maintain the angle of the direction. The first state is a state in which the up-and-down moving motor 41 and the twisting motor 42 do not perform the angle control, and the second state is a state in which the up-and-down moving motor 41 and the twisting motor 42 perform the angle control. Accordingly, the turning of the head 101 can be restricted using the angle control of the servo motors. Further, the restriction of the turning of the head 101 can be released by suspending the angle control. Further, the CPU 11 controls the up-and-down moving motor 41 to the first state by stopping the power supply to the up-and-down moving motor 41 when it is determined that the direction of the front-and-rear axis 101a is within the first angle range A. Further, the CPU 11 controls the twisting motor 42 to the first state by stopping the power supply to the twisting motor 42 when it is determined that the direction of the left-and-right axis 101b is within the second angle range B. Thus, the second state can be switched to the first state by simple control of cutting off the power supply to the up-and-down moving motor 41 and / or the twisting motor 42.
[0060] Further, the CPU 11 causes the head 101 to move by the up-and-down moving motor 41 and the twisting motor 42 so that the posture of the head 101 is maintained when the posture of the trunk 103 changes. The CPU 11 determines whether the direction of the front-and-rear axis 101a of the head 101 is within the first angle range A and determines whether the direction of the left-and-right axis 101b of the head 101 is within the second angle range B when the change in the posture of the trunk 103 stops. Thus, the robot 1 can perform a righting reaction-like movement of a living creature, and the robot 1 can look more like a living creature. Further, at the end of the righting reaction-like movement, even if the direction of the head 101 with respect to the trunk 103 becomes a direction different from the basic posture, unintended movement of the head 101 can be suppressed. Further, the robot 1 is provided with the outer cover 200 that covers the trunk 103 and the head 101. The first angle range A is set within a range of the direction of the front-and-rear axis 101a of the head 101 in which the front-and-rear axis 101a does not move due to a force received from the outer cover 200 when the up-and-down moving motor 41 is in the first state. Further, the second angle range B is set within a range of the direction of the left-and-right axis 101b of the head 101 in which the left-and-right axis 101b does not move due to a force received from the outer cover 200 when the twisting motor 42 is in the first state. Thus, unintended movement of the head 101 due to a force received from the outer cover 200 can be suppressed.
[0061] Further, by the robot 1 having the trunk portion 103 as the base portion and the head portion 101 as the movable portion, unintended movement of the head portion 101 in the robot 1 can be suppressed. Further, according to the control method of the robot according to the present embodiment, by the CPU 11 of the robot 1 performing the above-described control, unintended movement of the head portion 101 can be suppressed. Further, the program 131 according to the present embodiment, by causing the CPU 11 to perform the above-described control, unintended movement of the head portion 101 can be suppressed.
[0062] In addition, the present disclosure is not limited to the above-described embodiments, and various modifications can be made. For example, in the above-described embodiments, as a manner in which the actuator restricts the rotation of the movable portion in the second state, a manner in which the rotation of the head portion 101 is restricted by angle control of the servo motor is exemplified, but is not limited thereto. For example, a brake for preventing the rotation of the head portion 101 can be provided in the actuator independently of the angle control, and the rotation of the head portion 101 can be restricted by the CPU 11 controlling the brake. Further, the positional relationship between the head portion 101 and the trunk portion 103 can be fixed by a given locking mechanism in the second state. The specific structure of the locking mechanism is not particularly limited, and for example, can be a mechanism in which a protrusion directly or indirectly fixed to the trunk portion 103 is fitted in a recess provided at a position linked with the head portion 101.
[0063] Further, a manner in which two actuators (the up-down movement motor 41 and the twist motor 42) that cause the movable portion to rotate around two rotation axes are provided is exemplified, but is not limited thereto, and a manner in which the movable portion is caused to rotate around one rotation axis by one actuator can also be employed.
[0064] Further, the orientation of the head portion 101 when it rotates around the first rotation axis 401 is not limited to the orientation of the front-rear axis 101a, and can be the orientation of any axis fixed to the head portion 101 and intersecting the first rotation axis 401. Further, the orientation of the head portion 101 when it rotates around the second rotation axis 402 is not limited to the orientation of the left-right axis 101b, and can be the orientation of any axis fixed to the head portion 101 and intersecting the second rotation axis 402.
[0065] Further, as the actuator, a servo motor that operates by electric power is exemplified, but is not limited thereto. The actuator can be any actuator as long as it can cause the movable portion to rotate and can switch between the first state in which the rotation of the movable portion is not restricted and the second state in which the rotation of the movable portion is restricted. For example, the actuator can be an electromagnetic actuator that operates by magnetic force, a hydraulic actuator that operates by hydraulic pressure, an air pressure actuator that operates by air pressure, or the like.
[0066] Further, the example in which the robot 1 initially has the outerwear 200 is described, but is not limited thereto. For example, in a case where the user equips the robot 1 composed of only the main body 100 with an outerwear that imitates a clothes, an outerwear for protecting the main body 100, and the like from the back, the same control as the above-described embodiment can be performed.
[0067] Further, the present disclosure can also be applied to the robot 1 that does not have the outerwear 200. For example, in a case where the movable portion of the robot 1 moves due to the weight if the orientation of the movable portion exceeds a given range of angles, the movement due to the weight can be suppressed by setting the actuator to the second state.
[0068] Further, the structure of the robot 1 is not limited to Figures 1-3 For example, it can be a robot that imitates a living being that actually exists, such as a human, an animal, a bird, a fish, and the like, a robot that imitates a living being that does not exist, such as a dinosaur, or a robot that imitates a living being that is not real, and the like.
[0069] Further, in the above description, an example in which the flash memory of the storage 13 is used as a computer-readable medium of the program according to the present disclosure is disclosed, but is not limited to this example.
[0070] As another computer-readable medium, an information recording medium such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), a CD-ROM, and the like can be used.
[0071] Further, as a medium that provides data of the program according to the present disclosure via a communication line, a carrier wave is also applied to the present disclosure. Further, the detailed partial structure and the detailed partial action of each of the constituent elements of the robot 1 in the above-described embodiment can be appropriately changed without departing from the scope of the present disclosure. The embodiments of the present disclosure are described, but the scope of the present disclosure is not limited to the above-described embodiments, and includes the scope of the invention recited in the claims and the equivalent scope thereof.
Claims
1. A robot, possessing: Base; A movable part is installed in a state in which it can rotate relative to the base about a given axis of rotation; An actuator that causes the movable part to rotate about the rotation axis; and One or more processing units control the orientation of the movable part around the rotation axis by controlling the action of the actuator. The one or more processing units perform the following processing: Determine whether the orientation of the movable part is within a given angular range that includes a predetermined reference. If it is determined that the orientation is within the given angle range, the actuator is controlled to 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 given angle range, the actuator is controlled to a second state that restricts the rotation of the movable part.
2. The robot according to claim 1, wherein, The actuator is a servo motor capable of angular control that rotates the movable part in the indicated direction and maintains that direction. The first state is the state in which the servo motor does not perform the angle control. The second state is the state in which the servo motor performs the angle control.
3. The robot according to claim 2, wherein, The one or more processing units perform the following processing: If it is determined that the orientation is within the given angle range, the servo motor is controlled to enter the first state by stopping the power supply to the servo motor.
4. The robot according to any one of claims 1 to 3, wherein, The one or more processing units perform the following processing: When the posture of the base changes, the actuator rotates the movable part around the rotation axis to maintain the posture of the movable part. When the change in the posture of the base stops, it is determined whether the orientation of the movable part is within the given angle range.
5. The robot according to any one of claims 1 to 4, wherein, The robot comprises: an outer casing covering the base and the movable part. When the actuator is in the first state, the given angle range is set within the range of the orientation of the movable part, such that the movable part does not move due to the force received from the outer casing.
6. The robot according to any one of claims 1 to 5, wherein, The base is the torso of the robot. The movable part is the head of the robot.
7. The robot according to any one of claims 1 to 6, wherein, The robot has the following characteristics: The first actuator causes the movable part to rotate about the first rotation axis; and The second actuator causes the movable part to rotate about a second rotation axis that intersects the first rotation axis. The one or more processing units perform the following processing: When the rotation of the movable part about the first rotation axis is stopped, Determine whether the first orientation of the movable part about the first rotation axis is within a given first angular range including the first reference orientation. If it is determined that the first orientation is within the first angle range, the first actuator is controlled to the first state. If it is determined that the first orientation is not within the first angle range, the first actuator is controlled to the second state. Furthermore, when the rotation of the movable part around the second axis is stopped, Determine whether the second orientation of the movable part about the second rotation axis is within a given second angular range that includes the second reference orientation. If it is determined that the second orientation is within the range of the second angle, the second actuator is controlled to the first state. If it is determined that the second orientation is not within the range of the second angle, the second actuator is controlled to the second state.
8. A method for controlling a robot, the robot comprising: Base; A movable part, which is mounted in a state in which it can rotate relative to the base about a given axis of rotation; and An actuator that causes the movable part to rotate about the rotation axis. The robot control method is characterized by the following features: The orientation of the movable part around the rotation axis is controlled by controlling the action of the actuator. Determine whether the orientation of the movable part is within a given angular range that includes a predetermined reference. If it is determined that the orientation is within the given angle range, the actuator is controlled to 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 given angle range, the actuator is controlled to a second state that restricts the rotation of the movable part.
9. A computer program product comprising a program, in, The robot has the following features: Base; A movable part, which is mounted in a state in which it can rotate relative to the base about a given axis of rotation; and An actuator that causes the movable part to rotate about the rotation axis. The program enables the computer installed on the robot to function as a processing unit, which controls the orientation of the movable part around the rotation axis by controlling the movement of the actuator. The processing unit performs the following processing: Determine whether the orientation of the movable part is within a given angular range that includes a predetermined reference. If it is determined that the orientation is within the given angle range, the actuator is controlled to 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 given angle range, the actuator is controlled to a second state that restricts the rotation of the movable part.
Citation Information
Patent Citations
Autonomous walking robot device
JP2002059389A
Extrusion molded product for tube container and tube container
JP2024163641A
