Control devices, robotic systems, robots, programs, and control methods
The control device adjusts leg motion ranges and ground reaction force parameters to transition a robot's gait from walking to running, reducing energy consumption by enhancing ground reaction force and leg motion efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MITSUBISHI ELECTRIC CORP
- Filing Date
- 2025-07-10
- Publication Date
- 2026-06-26
AI Technical Summary
Existing methods for transitioning a robot's gait from walking to running, such as trotting or galloping, result in excessive energy consumption due to increased internal angular velocity and faster leg movement cycles.
A control device that adjusts parameters affecting ground reaction force by changing the range of motion of the robot's legs, specifically the joint angle range, to transition from walking to running without increasing internal angular velocity, using equations to determine target joint angles based on ground reaction force and internal angular velocity.
The solution effectively suppresses energy consumption while enabling the transition from walking to running by increasing the ground reaction force and adjusting the leg motion range, thereby optimizing energy efficiency.
Smart Images

Figure 0007881085000013 
Figure 0007881085000014 
Figure 0007881085000015
Abstract
Description
[Technical Field]
[0001] This disclosure relates to a control device, robot system, robot, program, and control method relating to the gait of a legged robot. [Background technology]
[0002] In the gait of living organisms and robots, each leg has two main phases. One is the support phase, in which the toes are in contact with the ground and force is applied to the ground from the toes. At this time, the toes receive a reaction force from the ground, which supports the body and provides propulsion. The other is the swing phase, in which the toes are lifted off the ground and move toward the landing point. The gait is generated when each leg alternates between these phases at the appropriate timing.
[0003] A mechanism called a Central Pattern Generator (CPG) is used to control the legs of a robot with legs, such as a bipedal or quadrupedal robot (hereinafter also referred to as a legged robot). The CPG controls the timing of the movement of each leg and switches the phase of each leg. The CPG can sometimes be represented by a simple circular motion. That is, in this model, if the phase of the circular motion is called the phase of the CPG, the phase of the CPG changes so that the time derivative of the phase of the CPG becomes a defined angular velocity (hereinafter also called the internal angular velocity). For example, if the phase of the circular motion is between 0 and π, the corresponding leg is raised, and as the phase approaches π, the leg is moved forward. If the phase is between π and 2π, the leg is lowered, and as the phase approaches 2π, the leg is moved backward. If the timing of the movement of each leg is appropriate, that is, if the phase of the circular motion of each leg is appropriate, a gait pattern is generated.
[0004] Non-Patent Document 1 discloses a method for appropriately controlling the phase of the CPG of each leg of a four-legged robot, in which the phase of the CPG of each leg is changed according to the product of the cosine of the phase and the ground reaction force applied to the foot of the corresponding leg. Specifically, in the method described in Non-Patent Document 1, the phase of the CPG is changed for each leg such that the time derivative of the CPG phase is obtained by subtracting the value obtained by multiplying the above product by the feedback weight from the internal angular velocity. Using the method described in Non-Patent Document 1, the phase of the CPG of each leg is adjusted according to the ground reaction force received at the toes of each leg, without directly controlling the phase relationship between the legs, and the gait of the four-legged robot is generated. Using the method described in Non-Patent Document 1, different gait patterns such as walking, trotting, cantering, and galloping are generated depending on the magnitude of the internal angular velocity. [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] Owaki and Ishiguro, “A Quadruped Robot Exhibiting Spontaneous Gait Transitions from Walking to Trotting to Galloping”, Scientific Reports, Nature Research (Nature Portfolio), March 21, 2017 [Overview of the Initiative] [Problems that the invention aims to solve]
[0006] When changing the gait pattern of a robot from walking to running such as trotting, cantering, or galloping using the method described in Non-Patent Document 1, the internal angular velocity must be significantly increased, and the frequency of moving the legs during running is much higher than during walking. The internal angular velocity indicates the cycle of the movement of the robot's legs in the gait. When the internal angular velocity increases, the cycle of the leg movement becomes faster (shorter). Therefore, when the robot runs using the method described in Non-Patent Document 1, there is a problem that the energy consumption of the robot per unit time becomes excessively large.
[0007] The present disclosure has been made in view of the above, and an object thereof is to obtain a control device that enables the transition of a robot from walking to running while suppressing an increase in the energy consumption of the robot.
Means for Solving the Problems
[0008] In order to solve the above-described problems and achieve the object, the control device according to the present disclosure switches a parameter that affects the ground reaction force at the feet of the robot's legs in accordance with a change in the gait pattern of the robot, outputs control information used for controlling the legs based on the parameter, and the parameter includes range information indicating the operable range of the movable part of the leg. Let i be the number that identifies the leg, N Saki , cosφ , This is determined as control information by the following equation (2), , φ (with dot at the top) , i,j , i , i , We decided, , i,j , i , Let be the ground reaction force at the foot of the i-th leg, let ω be the internal angular velocity indicating the length of the leg's motion cycle, and let σ be the weighting coefficient indicating the weight of the feedback. , i , φ with respect to the j-th joint of the i-th leg , Let be the midpoint of the range of motion of the j-th joint of the i-th leg, and a , , =mega-σN , =home_angle , , i,j , i,j , i , i , When this is defined as the phase difference between the change in joint angle and the target joint angle of the j-th joint of the i-th leg, , , Let b be a value that indicates the width of the operating range. , When we let be the phase in the cycle of the i-th leg's movement, then by equation (1) below, φ , i,j , Let j be an integer representing the joint number of the movable part of the leg, and home_angle , …(1) Let be the ground reaction force at the foot of the i-th leg, let ω be the internal angular velocity indicating the length of the leg's motion cycle, and let σ be the weighting coefficient indicating the weight of the feedback. i When we let be the phase in the cycle of the i-th leg's movement, then by equation (1) below, φ i We decided, φ (with dot at the top) i =mega-σN i cosφ i …(1) Let j be an integer representing the joint number of the movable part of the leg, and home_angle i,j Let be the midpoint of the range of motion of the j-th joint of the i-th leg, and a i,j Let b be a value that indicates the width of the operating range. i,j φ with respect to the j-th joint of the i-th leg i When this is defined as the phase difference between the change in joint angle and the target joint angle of the j-th joint of the i-th leg, i,j This is determined as control information by the following equation (2), Saki i,j =home_anglei,j +a i,j ×cos(φ i +b i,j ) …(2) The gait pattern includes walking and running, and the operable range during running is set to be wider than the operable range during walking. Range information is set.
Advantages of the Invention
[0009] According to the control device of the present disclosure, it is possible to suppress an increase in the energy consumption of the robot and enable the transition of the robot from walking to running.
Brief Description of the Drawings
[0010] [Figure 1] A diagram showing a configuration example of a robot system according to Embodiment 1 [Figure 2] A diagram showing a simplified appearance of the robot of Embodiment 1 [Figure 3] A diagram showing the definition of joint angles of Embodiment 1 <~ [Figure 4] A flowchart showing an example of control processing (control method) in the control device of Embodiment 1 <~ [Figure 5] A diagram showing an example of an input reception screen for parameters related to the gait of Embodiment 1 [Figure 6] A diagram showing another example of an input reception screen for parameters related to the gait of Embodiment 1 [Figure 7] A diagram showing an example of a gait timing chart (gait diagram) obtained as a result of an experiment applying the control method of Embodiment 1 [Figure 8] A diagram showing an example of joint angles obtained as a result of an experiment applying the control method of Embodiment 1 [Figure 9] A diagram showing an example of the ground reaction force obtained as a result of an experiment applying the control method of Embodiment 1 [Figure 10] A diagram showing a configuration example of a robot system according to a modification of Embodiment 1 [Figure 11] This figure shows an example of an input reception screen in a modified example of Embodiment 1. [Figure 12] This figure shows an example of the hardware configuration of the control device according to Embodiment 1. [Figure 13] This figure shows an example of the input screen for gait parameters in Embodiment 2. [Figure 14] This figure shows an example configuration of the robot system according to Embodiment 3. [Figure 15] A flowchart showing an example of the processing procedure of the control quantity calculation unit in Embodiment 3. [Modes for carrying out the invention]
[0011] The control device, robot system, robot, program, and control method according to the embodiment will be described in detail below with reference to the drawings.
[0012] Embodiment 1. Figure 1 shows an example configuration of a robot system 100 according to Embodiment 1. The robot system 100 comprises a control device 10 and a robot 20. The robot 20 comprises a robot control device 21, legs 22, joint angle sensors 23 and pressure sensors 24. Although Figure 1 shows an example in which the robot control device 21 is installed inside the robot 20, the robot control device 21 may be installed outside the robot 20.
[0013] In Figure 1, one leg 22 is shown for simplification, but the robot 20 may have, for example, two or four legs 22. Below, we will mainly describe an example in which the robot 20 has four legs 22, i.e., an example in which the robot 20 is a four-legged robot, but the number of legs 22 that the robot 20 has can be one or more and is not limited to this.
[0014] The leg 22 has, for example, at least one movable part. The movable part is a joint or a mechanism that changes the length of the leg 22, but as will be described later, it is sufficient and not limited to any mechanism in which the movement of the movable part affects the ground reaction force at the foot of the leg 22. The mechanism that changes the length of the leg 22 is, for example, a linear cylinder, but is not limited to this. Figure 1 shows an example in which the movable part is a joint, and the following will mainly describe the example in which the movable part is a joint.
[0015] The joint angle sensor 23 is an example of a state sensor that detects the state of a movable part. In the example shown in Figure 1, as described above, the leg 22 has joints. A joint angle sensor 23 is provided for each joint, and each joint angle sensor 23 detects the joint angle of the corresponding joint and outputs the detected joint angle to the robot control device 21. A pressure sensor 24 is provided for each leg 22, and each pressure sensor 24 detects the ground reaction force at the foot of the corresponding leg 22 and outputs the detected ground reaction force to the control device 10.
[0016] The robot control device 21 uses the joint angles received from the joint angle sensor 23, i.e., the detected joint angles, and the target joint angles received from the control device 10 (described later), to control the joint angles so that the detected joint angles match the target joint angles. The robot control device 21 performs feedback control such as PD (Proportional Derivative) control, PID (Proportional Integral Derivative) control, P (Proportional) control, and PI (Proportional Integral) control, but the control method in the robot control device 21 is not limited to these, as long as control is performed using the target joint angles.
[0017] Furthermore, although Figure 1 shows the joint angle sensor 23 and pressure sensor 24 inside the robot 20, at least one of the joint angle sensor 23 and pressure sensor 24 does not have to be a component of the robot 20. In other words, at least one of the joint angle sensor 23 and pressure sensor 24 may be an external sensor.
[0018] The gait pattern of the robot 20 in this embodiment includes at least walking and running. The gait pattern refers to the type of gait. Furthermore, running may be further classified into trotting, cantering, galloping, etc.
[0019] Figure 2 is a simplified diagram showing the external appearance of the robot 20 of Embodiment 1. In the example shown in Figure 2, the robot 20 is a four-legged robot, and since Figure 2 shows a side view, two legs 22 are shown, but there are also legs 22 behind each of the legs 22 shown in Figure 2. In the example shown in Figure 2, each leg 22 has a first joint 221 and a second joint 222. The joint angle of the first joint 221 is θ below. t Also called, the joint angle of the second joint 222 is defined as θ below. c It is also called a joint. When the first joint 221 and the second joint 222 are not distinguished, they are referred to as a joint. Each joint is equipped with a motor, for example, and the joint angle of each joint is controlled by the robot control device 21 controlling the rotation of the motor. The part driven by the rotation of the first joint 221 is also called the thigh, and the part driven by the rotation of the second joint 222 is also called the calf. Note that Figure 2 is just an example, and as mentioned above, the robot 20 is not limited to a four-legged robot. Also, the number of joints in each leg 22 is not limited to the example shown in Figure 2.
[0020] Figure 3 shows the definition of the joint angle in Embodiment 1. The joint angle is defined as the deviation from the initial angle of the joint. The joint position and the positive / negative direction of the angle that determine the initial angle can be arbitrarily determined by the user. In the example shown in Figure 3, the joint angle is defined as 0 (radians or degrees) when the part driven by the joint is in its initial state, and the direction of rotation counterclockwise is considered positive. The definition shown in Figure 3 is just one example, and the definition of the joint angle is not limited to the example shown in Figure 3, and can be arbitrarily determined by the user as described above. For example, as shown in Figure 2, the initial position of the joint that moves the thigh may be the position where the major axis of the thigh is vertically downward. Also in the same figure, the initial position of the joint that moves the calf may be the position where the major axes of the thigh and calf are straight. When the joint is in its initial position, the joint angle is defined as 0 (radians or degrees). Furthermore, as illustrated in Figure 2, when viewing the robot 20 from the side with its front facing left, the direction in which the joint axis rotates counterclockwise can be considered positive, and the direction in which it rotates clockwise can be considered negative. As mentioned above, the joint position and the positive / negative direction of the angle used to determine the initial angle are not limited to these examples.
[0021] Returning to the explanation of Figure 1, the control device 10 switches parameters that affect the ground reaction force at the feet of the robot's legs 22 in response to changes in the robot's gait pattern, and outputs control information used to control the legs 22 based on these parameters. Parameters that affect the ground reaction force at the feet of the robot's legs 22 include, for example, range information indicating the range of motion of the robot's movable parts. If the movable part is a joint, for example, the control device 10 outputs a target joint angle of the leg 22's joint using the ground reaction force detected by the pressure sensor 24, the internal angular velocity that specifies the length (speed) of the leg 22's movement cycle in the gait, and the joint angle range (also called the maximum joint angle) that specifies the range of motion of the leg 22's joint. The joint angle range is defined, for example, by a minimum and a maximum value, but is not limited to this, as long as the range can be specified. For example, the joint angle range may be indicated by an intermediate value (middle value) and a value indicating the width (breadth) of the joint angle range. For example, if we define X as the midpoint of the joint angle range and Y as the width of the joint angle range divided by 2, then the minimum value of the joint angle range will be XY and the maximum value will be X+Y. In this way, the joint angle range may be represented by X and Y. Also, while the joint angle range is set for each joint, there may be multiple joints that have the same joint angle range set. The target joint angle is an example of a target value for controlling the robot 20. The target value for controlling the robot 20 is also an example of control information used to control the legs 22 of the robot 20. For example, if the movable part of the robot 20 is a linear cylinder, the length of the legs 22 may be specified instead of the target joint angle. Thus, the target value for controlling the robot 20 is not limited to the target joint angle and may be determined according to the structure and control method of the legs 22 of the robot 20.
[0022] The control device 10 comprises a reception unit 11, a phase update unit 12, and a target value calculation unit 13. The reception unit 11 receives input from the user. For example, the reception unit 11 receives input of parameters related to the gait of the robot 20. The parameters related to gait include, for example, internal angular velocity, a weighting coefficient indicating the weight of the feedback, and range information indicating the range of motion of the movable part of the leg 22, but are not limited to these and can be determined according to the structure of the leg 22 and the phase control method. Details of the parameters related to gait will be described later, but in this embodiment, range information indicating the range of motion of the movable part of the leg 22 is set so that the range of motion of the movable part of the leg 22 differs between walking and running. The range information is an example of a parameter that affects the ground reaction force of the leg 22 of the robot 20 as described above.
[0023] The phase update unit 12 updates the held phase (phase value) using the current phase and the ground reaction force acting on the tip of the robot's leg 22, detected by the pressure sensor 24, and holds the updated phase. The phase update unit 12 also outputs the updated phase to the target value calculation unit 13. The phase update period may be, for example, the period during which the detection result (ground reaction force) is received from the pressure sensor 24, or it may be a period longer than the period during which the detection result (ground reaction force) is received from the pressure sensor 24.
[0024] The target value calculation unit 13 uses the phase received from the phase update unit 12 and information indicating the operating range of the movable part of the leg 22 to calculate a target value for controlling the leg 22, and outputs the calculated target value to the robot control device 21. For example, if the movable part is a joint, the target value calculation unit 13 uses the phase received from the phase update unit 12 and range information indicating the range of motion of the joint received by the reception unit 11 to calculate the target joint angle of the leg 22's joint, and outputs the calculated target joint angle to the robot control device 21.
[0025] As described above, in this embodiment, information indicating the range of motion of the movable part of the leg 22 is set so that the range of motion of the movable part of the leg 22 differs between walking and running. For example, if the movable part is a joint, information indicating the range of motion of the movable part is set so that the range of motion of the joint during walking is wider than the range of motion of the joint during running. The robot control device 21 controls the joint angle of the leg 22 using the target joint angle received from the control device 10. In this embodiment, by setting the range of motion of the joint during walking to be wider than the range of motion of the joint during running, the ground reaction force at the feet of the robot 20 becomes larger when running than when walking. Therefore, the gait can be transitioned to running without increasing the internal angular velocity from that during walking. Thus, the control device 10 enables the transition of the robot 20 from walking to running while suppressing an increase in the energy consumption of the robot 20. Similarly, even when a linear cylinder or other than a joint is used as the movable part of the robot 20, widening the range of motion increases the ground reaction force at the feet of the robot 20, allowing the gait to be transitioned to running without increasing the internal angular velocity from that during walking.
[0026] Furthermore, the phase update unit 12, for example as described in Non-Patent Document 1, sets the phase φ such that it satisfies the following equation (1). i Update the following: i is a number that identifies leg 22, and in the case of a quadruped robot, i is an integer from 1 to 4, for example. i ω represents the ground reaction force at the foot of the i-th leg 22, ω represents the internal angular velocity, and σ represents the weighting coefficient indicating the weight of the feedback. Note that the phase φ i The initial value of can be 0, or it can be set in any way. Below, the phase update unit 12 adjusts the phase φ according to equation (1). i An example of updating the phase will be explained, but the method of updating the phase in the phase update unit 12 may be, for example, a method in which the phase of each leg 22 is represented by the coupling coefficient of the neuron using a neural oscillator model, and the method of updating the phase in the phase update unit 12 is not limited to the example that follows equation (1).
[0027]
number
[0028] Next, the operation of Embodiment 1 will be described. Figure 4 is a flowchart showing an example of the control process (control method) in the control device 10 of Embodiment 1. The control device 10 acquires the joint angle range, internal angular velocity ω, and weight coefficient σ (step S1). In detail, for example, the reception unit 11 acquires the joint angle range, internal angular velocity ω, and weight coefficient σ by receiving input of the joint angle range, internal angular velocity ω, and weight coefficient σ as parameters related to gait. The reception unit 11 outputs the internal angular velocity ω and weight coefficient σ to the phase update unit 12 and outputs the joint angle range to the target value calculation unit 13. The joint angle range is an example of information indicating the range of motion of a joint. As described above, the joint angle range may be specified by a minimum value and a maximum value, or it may be specified by the maximum value of the deviation from the reference angle (maximum joint angle).
[0029] The joint angle range, internal angular velocity ω, and weight coefficient σ may be acquired simultaneously, but they do not need to be acquired simultaneously; two or more of these may be acquired at different times. For example, the weight coefficient σ may be acquired first, and the joint angle range and internal angular velocity ω may be acquired later. Furthermore, the joint angle range is acquired separately for walking and running, but the timing of acquisition of the joint angle range for walking and running may be simultaneous or different. In the example shown in Figure 1, the reception unit 11 receives input for the joint angle range, internal angular velocity ω, and weight coefficient σ, but this is not limited to this; at least a portion of the internal angular velocity ω and weight coefficient σ may be received by a communication unit (not shown) from another device (not shown).
[0030] Figure 5 shows an example of an input reception screen for gait parameters in Embodiment 1. The control device 10 may, for example, have a reception unit 11 that functions as a display device and display the input reception screen shown in Figure 5, or the control device 10 may be equipped with a display device such as a display or monitor (not shown in Figure 1) and the display device may display the input reception screen shown in Figure 5, or a display device separate from the control device 10 may display the input reception screen shown in Figure 5 under the control of the control device 10.
[0031] In the example shown in Figure 5, the input screen displays input fields 30 for receiving input on the joint angle range during walking, 31 for receiving input on the joint angle range during running, 32 for receiving input on the timing of switching from walking to running, 33 for receiving input on the weight coefficient σ, and 34 for receiving input on the internal angular velocity ω. In input fields 30 and 31, it is possible to input the minimum and maximum values to the left and right of "~". The user can set parameters related to gait by inputting into these input fields 30 to 34 via the reception unit 11 and then pressing the confirm button 35. For example, the joint angle range during walking may be set as an initial value in advance and held by the control device 10, in which case input field 30 may not be provided. Also, although Figure 5 shows an example in which the joint angle range, internal angular velocity ω, and weight coefficient σ are input simultaneously, as described above, the joint angle range, internal angular velocity ω, and weight coefficient σ may be set at different timings. In Figure 5, an example is shown where a pair of joint angle ranges for walking and running are input; however, it is also possible to accept input for each joint individually.
[0032] Figure 6 shows another example of the input screen for gait parameters in Embodiment 1. In the example shown in Figure 6, the input screen displays an input field 30 for inputting the joint angle range during walking, an input field 31 for inputting the joint angle range during running, and an input field 32 for inputting the timing of switching from walking to running. In the example shown in Figure 6, the internal angular velocity ω and the weighting coefficient σ are input separately from this input screen. The user can set the gait parameters by pressing the OK button 35 after inputting into each input field 30 to 32. In this example, the minimum and maximum ranges are also provided as a guide when inputting the joint angle ranges for walking and running, respectively. A1 to A2 is the range of the minimum joint angle range during walking, and A3 to A4 is the range of the maximum joint angle range during walking. A5 to A6 is the range of the minimum joint angle range during running, and A7 to A8 is the range of the maximum joint angle range during running. A1 to A8 are set such that, for at least some of the legs 22, the joint angle range during running is wider than the joint angle range during walking. This guideline may be set in advance by experiments or simulations, for example, or by machine learning using the results of experiments or simulations. Figures 5 and 6 are illustrative examples, and the display items, layout, and specific display methods on the screen where the reception unit 11 accepts input of gait parameters are not limited to these examples. Also, for example, in the examples shown in Figures 5 and 6, default values may be displayed in advance in input fields 30 to 34 or input fields 30 to 32, so that the user does not need to input parameters that are not changed from the default values. Furthermore, the user may change at least one of the joint angle range, internal angular velocity ω, and weight coefficient σ by changing the source code of the program corresponding to the target value calculation unit 13.
[0033] Returning to the explanation of Figure 4, the control device 10 determines whether or not it is the timing for switching gait patterns (step S2). More specifically, the phase update unit 12 determines whether or not it is the timing for switching gait patterns, for example, from walking to running. For example, the timing for switching gait patterns may be received by the reception unit 11 in step S1, as illustrated in Figures 5 and 6, or it may be predetermined. Alternatively, for example, the joint angle range during walking may be predetermined, and when the internal angular velocity ω and weight coefficient σ are obtained in step S1, processing from step S2 onwards begins, and the timing determined after inputting the joint angle range during running may be considered the switching timing. Here, we describe an example where the robot 20 walks at the start of the operation and the gait pattern changes from walking to running, but similar processing may be performed when changing from running to walking. Furthermore, if running is further subdivided into gait patterns such as trotting, cantering, and galloping, similar processing may be performed for transitions between these subdivided gaits.
[0034] If the control device 10 determines that it is time to switch gait patterns (step S2 Yes), it changes the joint angle range (step S3). Specifically, the phase update unit 12 changes the joint angle range from the value during walking to the value during running. If the control device 10 determines that it is not time to switch gait patterns (step S2 No), it proceeds to step S4.
[0035] The control device 10 acquires the ground reaction force N (step S4). Specifically, the phase update unit 12 of the control device 10 acquires the ground reaction force N from the pressure sensor 24. Although not shown in Figure 1, the control device 10 may be equipped with a sensor interface that corresponds to the communication standard of the pressure sensor 24, and the phase update unit 12 may acquire the ground reaction force N from the pressure sensor 24 via the sensor interface.
[0036] Next, the control device 10 updates the cycle phase (step S5). Specifically, the phase update unit 12 updates the phase φ based on, for example, equation (1) described above.i The updated phase φ i The result is output to the target value calculation unit 13. As described above, the phase update method is not limited to the method based on equation (1).
[0037] Next, the control device 10 calculates and outputs the target joint angle (step S6). Specifically, for example, the target value calculation unit 13 receives the phase φ from the phase update unit 12. i Using the joint angle range received from the reception unit 11, the target joint angle of each joint is calculated, and the calculated target joint angle is output to the robot control device 21. The method for calculating the target joint angle is a method using a sine function, with a phase φ i Examples include using a table that defines the correspondence between the joint angle and the target joint angle, and using a pre-trained model generated by machine learning, such as a neural network, but the method is not limited to these.
[0038] When the target joint angle is calculated using a sine function, the target value calculation unit 13 calculates the angle of the j-th joint of the i-th leg 22 using, for example, the following formula (2). i,j Calculate the following: j is an integer representing the joint number. home_angle i,j is the midpoint of the joint angle range of the j-th joint of the i-th leg 22. i,j This value represents the range of the joint angle, and is the difference between the minimum and maximum values of the joint angle range divided by 2. Therefore, home_angle i,j from a i,j The angle obtained by subtracting this value becomes the minimum value of the joint angle range, home_angle i,j to a i,j The angle obtained by adding this value represents the maximum range of joint angle. i,j is the phase difference between the phase of the CPG and the variation in the joint angle with respect to the j-th joint of the i-th leg 22, where the phase of the CPG is -b i,j In this case, the value of the joint angle becomes the maximum value of the joint angle range.
[0039]
number
[0040] The control device 10 determines whether or not to terminate the output of the target value (step S7), and if it decides to terminate the output of the target value (step S7 Yes), it terminates the process. In step S7, the control device 10 decides to terminate the output of the target value, for example, when the set termination time arrives or when the reception unit 11 receives an instruction to terminate the output of the target value. If it does not decide to terminate the output of the target value (step S7 No), the control device 10 repeats the process from step S2.
[0041] Note that the procedure shown in Figure 4 is just one example, and any similar processing can be achieved. The specific content and order of each step are not limited to the example shown in Figure 4. For example, step S4 may be performed before steps S2 and S3.
[0042] As explained above, in this embodiment, the joint angle range is made different for walking and running. More specifically, when transitioning the gait pattern from walking to running, the joint angle range is increased compared to the value during walking. Non-patent document 1 only discloses that the gait pattern can be transitioned from walking to running by changing the internal angular velocity ω, and it is not obvious whether the transition from walking to running can be achieved simply by changing the joint angle range. In other words, it is not obvious whether a running gait can be generated by changing the joint angle range. However, by conducting the experiments shown below, it was confirmed that the gait pattern can be transitioned from walking to running.
[0043] The experimental conditions are described below. As the robot 20, a four-legged robot was used, as shown in Figure 2, in which each leg 22 has two joints, a first joint 221 and a second joint 222. The weight of this four-legged robot is 15 kg, of which the weight of the thigh and calf is 1.15 kg and 0.24 kg, respectively. The distance between the joints at the base of the forelegs and hind legs is approximately 39 cm, and the distance between the bases of the left and right legs is approximately 30 cm. The set range of joint angles (joint angle range) was 0.551 to 1.25 (radians) for the thigh and -2.06 to -1.54 (radians) for the calf during walking, and 0.551 to 1.25 (radians) for the thigh and -2.32 to -1.28 (radians) for the calf during running. The same joint angle range was set for the thigh and calf, respectively, for the forelegs and hind legs. Furthermore, walking began at 0 seconds, and 20 seconds after the start of walking, the joint angle range was switched to a wider range than before.
[0044] Figure 7 shows an example of a gait timing chart (gait diagram) obtained as a result of an experiment applying the control method of Embodiment 1. In Figure 7, the horizontal axis represents time, with black areas indicating that the leg 22 is in contact with the ground and white areas indicating that the leg 22 is not in contact with the ground. In Figure 7, it is shown whether each of the four legs 22—the left foreleg, left hind leg, right foreleg, and right hind leg—is in contact with the ground (stance phase) or not in contact with the ground (swing phase) at each time.
[0045] As can be seen in Figure 7, after walking begins, the stance and swing phases of each leg 22 repeat the same pattern for a while. However, from 20 seconds, which is the timing for switching the joint angle range, the stance and swing phases gradually change, the swing phase becomes longer, and it can be seen that the gait has transitioned to running.
[0046] Figure 8 shows an example of joint angles obtained as a result of an experiment applying the control method of Embodiment 1. Figure 8 shows the results detected by the joint angle sensors 23 corresponding to each joint in the experiment described above. As can be seen from Figure 8, after a while from the start of walking, the joint angles of each leg 22 fluctuate periodically in a similar manner, but the appearance of the joint angles of each joint changes from the timing of the switching of the joint angle range, and it can be seen that the amplitude of the fluctuation of the joint angle of the second joint 222 of each leg 22 becomes larger. After the timing of the switching of the joint angle range of the first joint 221 of each leg 22 the amplitude of the fluctuation of the joint angle becomes smaller, but the joint angle range itself is changed to become larger, i.e., wider, and depends on the control state, etc. In any case, the stride length of each leg 22 becomes larger from the timing of the switching of the joint angle range.
[0047] Figure 9 shows an example of ground reaction force obtained as a result of an experiment applying the control method of Embodiment 1. In Figure 9, the horizontal axis represents time, and the vertical axis represents the ground reaction force N detected by the pressure sensors 24 of each leg 22. Note that Figure 9 extracts the portion before and after the timing of the joint angle range switching. As shown in Figure 9, the ground reaction force N increases from the timing of the joint angle range switching. Specifically, it can be seen that the peak value of the ground reaction force increases. Thus, it can be seen that widening the joint angle range results in a larger ground reaction force N, which increases the swing leg time and transitions the gait to running. Note that the extent to which the joint angle range is changed between walking and running depends on the structure and weight of the robot 20, so the joint angle range should be set accordingly.
[0048] In the example described above, the joint angle range during movement is set, but this is not the only option; the joint angle range during movement may be changed automatically. Figure 10 shows an example configuration of a robot system 100a according to a modification of Embodiment 1. The robot system 100a shown in Figure 10 is the same as the robot system 100 shown in Figure 1, except that it is equipped with a control device 10a instead of a control device 10.
[0049] The control device 10a is the control device 10 shown in Figure 1 with the addition of a parameter determination unit 14. Components having the same function as in the example shown in Figure 1 are given the same reference numerals as in Figure 1, and redundant explanations are omitted. The parameter determination unit 14 determines the joint angle range of the joints, that is, the range of motion of the joints. The parameter determination unit 14 determines the joint angle range during running based on, for example, at least one of the following of the robot 20: the number of legs 22, the number of joints, the weight, the position of the legs 22, the position of the joints, etc. For example, using at least one of the following as explanatory variables: the number of legs 22, the number of joints, the weight, the position of the legs 22, the position of the joints, etc., the parameter determination unit 14 uses the joint angle range obtained when the robot can transition to a running gait through experiments, and obtains relational information representing the relationship between the explanatory variable and the joint angle range using multivariate analysis, machine learning, etc. The relational information may be, for example, a relational expression obtained by multivariate analysis, or a trained model obtained by machine learning. The learning device for obtaining the relational information may be provided in the parameter determination unit 14, or it may be provided separately from the control device 10a. Furthermore, although the parameter determination unit 14 is located within the control device 10a in Figure 10, the parameter determination unit 14 may be located in a separate device from the control device 10a.
[0050] When machine learning is used, for example, the parameter determination unit 14 stores a trained model for inferring the joint angle range from explanatory variables, and obtains the joint angle range by inputting the explanatory variables received by the reception unit 11 into the stored trained model.
[0051] The processing procedure in the control device 10a is the same as in Figure 4, but in step S1, the reception unit 11 does not need to accept the joint angle range during running. For example, if the joint angle range during walking is predetermined, the input of the joint angle range itself does not need to be accepted.
[0052] Figure 11 shows an example of an input reception screen in a modified version of Embodiment 1. In the input reception screen shown in Figure 11, the input field 30 for receiving input of the joint angle range during walking and the input field 31 for receiving input of the joint angle range during running are removed from the input reception screen shown in Figure 5. Separately from this input screen, the reception unit 11 receives input of explanatory variables to the trained model, the parameter determination unit 14 determines the joint angle range using the explanatory variables and the trained model, and outputs the determined joint angle range to the phase update unit 12. Furthermore, if the structure of the robot 20 is defined, the joint angle range during running may be fixed and determined by experimentation or other means.
[0053] In the robot system 100 shown in Figure 1 and the robot system 100a shown in Figure 10, the control devices 10 and 10a are shown to be provided separately from the robot 20. However, the control devices 10 and 10a are not limited to this configuration and may be provided within the robot 20.
[0054] Next, the hardware configuration of the control devices 10 and 10a will be described. Figure 12 is a diagram showing an example of the hardware configuration of the control devices 10 and 10a in Embodiment 1. The control devices 10 and 10a are implemented, for example, by a computer system. As shown in Figure 12, the computer system that implements the control devices 10 and 10a includes a processing unit 101, a storage device 102, an input interface 103, an operating device 104, a display interface 105, and a display device 106.
[0055] The processing unit 101 is a processor such as a CPU (Central Processing Unit) and executes a program that describes the processing in the control devices 10 and 10a of Embodiment 1. A portion of the processing unit 101 may be implemented using dedicated hardware such as a GPU (Graphics Processing Unit) or FPGA (Field-Programmable Gate Array). The storage device 102 includes various types of memory such as RAM (Random Access Memory) and ROM (Read Only Memory), as well as a storage device such as a hard disk, and stores the program to be executed by the processing unit 101, necessary data obtained during the processing, and so on. The storage device 102 may also be used as a temporary storage area for the program.
[0056] The operating device 104 can be an operation controller, buttons, a keyboard, a mouse, a touchpad, etc. The input interface 103 is an interface circuit that receives input from the operating device 104. The display device 106 is, for example, a display, such as an LCD (Liquid Crystal Display). The display device 106 and the operating device 104 may be integrated and implemented as a touch panel or the like. Also, at least one of the operating device 104 and the display device 106 may be a separate device from the computer system. Note that Figure 12 is just one example, and the configuration of the computer system is not limited to the example in Figure 10.
[0057] Here, we will describe an example of the operation of the computer system until the program of Embodiment 1 becomes executable. In the computer system with the above configuration, for example, a computer program is installed in the storage device 102 from a CD-ROM or DVD-ROM set in a CD (Compact Disc)-ROM drive or DVD (Digital Versatile Disc)-ROM drive (not shown). When the program is executed, the program read from the storage device 102 is stored in the main memory area of the storage device 102. In this state, the processing unit 101 performs processing as the control devices 10 and 10a of Embodiment 1 according to the program stored in the storage device 102.
[0058] In the above description, a program describing the processing in the control devices 10 and 10a is provided using a CD-ROM or DVD-ROM as the recording medium. However, the system is not limited to this, and depending on the configuration of the computer system, the capacity of the program to be provided, a program provided via a transmission medium such as the Internet may be used.
[0059] The program of this embodiment causes a computer program to perform, for example, the steps of switching parameters that affect the ground reaction force N at the feet of the robot's legs 22 in response to a change in the robot's gait pattern, and outputting control information used to control the legs 22 based on the parameters.
[0060] The phase update unit 12 and the target value calculation unit 13 shown in Figures 1 and 10 are realized by executing a computer program stored in the storage device 102 shown in Figure 12 using the processing device 101 shown in Figure 12. The parameter determination unit 14 shown in Figure 10 is also realized by executing a computer program stored in the storage device 102 shown in Figure 12 using the processing device 101 shown in Figure 12. The storage device 102 shown in Figure 12 is also used to realize the phase update unit 12, the target value calculation unit 13, and the parameter determination unit 14. Furthermore, the parameter determination unit 14 may be realized by a different computer or a different processing device 101 from the phase update unit 12 and the target value calculation unit 13. The reception unit 11 shown in Figures 1 and 10 is realized by the operating device 104 shown in Figure 12. Note that the control devices 10 and 10a may be realized by multiple computer systems.
[0061] As described above, the control devices 10 and 10a of this embodiment increase the maximum angular velocity to calculate the target joint angle when switching the gait pattern from walking to running, and output the calculated target joint angle. As a result, the control devices 10 and 10a can transition the gait pattern of the robot 20 from walking to running while suppressing an increase in the energy consumption of the robot 20.
[0062] Embodiment 2. Next, Embodiment 2 will be described. The configuration of the robot system in Embodiment 2 is the same as that of the robot system 100 in Embodiment 1. Components having the same functions as in Embodiment 1 will be denoted by the same reference numerals as in Embodiment 1 and described accordingly. Below, the differences from Embodiment 1 will be mainly described, and explanations that overlap with Embodiment 1 will be omitted.
[0063] In Embodiment 1, the gait pattern was switched from walking to running by changing the joint angle range. In this embodiment, however, when switching the gait pattern from walking to running, in addition to changing the joint angle range, the internal angular velocity ω is also changed. For example, the internal angular velocity ω during running is changed to a value that is faster (larger) than the internal angular velocity ω during walking. Thus, in this embodiment, the parameters that affect the ground reaction force include range information and internal angular velocity.
[0064] In this embodiment, the control device 10 performs the same processing as illustrated in Figure 4, for example, but in step S3, it also changes the internal angular velocity ω in addition to the joint angle range. Furthermore, in step S1, it may accept inputs for the internal angular velocity ω corresponding to walking and running, respectively.
[0065] Figure 13 shows an example of an input screen for parameters related to gait in Embodiment 2. The input fields 30-33 and the confirmation button 35 shown in Figure 13 are the same as in the example shown in Figure 5. In the example shown in Figure 13, an input field 36 for receiving input of the internal angular velocity ω during walking and an input field 37 for receiving input of the internal angular velocity ω during running are displayed on the input screen. This allows the user to input the internal angular velocity ω for both walking and running. Note that Figure 13 is an example, and the display items, layout, and specific display methods on the input screen are not limited to this example. Also, similar to the maximum angular velocity on the input screen shown in Figure 6, a range of values to be entered for the internal angular velocity ω may be displayed. Also, default values for each parameter may be displayed in advance. Also, the internal angular velocity ω during walking may be predetermined, and the input screen may accept input of the internal angular velocity ω during running. Also, as described in Embodiment 1, the internal angular velocity ω may be changed by changing the source code of the program.
[0066] Other than what is described above, the operation of the robot system 100 in this embodiment is the same as in Embodiment 1. In this embodiment, in addition to the joint angle range, the internal angular velocity ω is also increased when switching from walking to running. Although the energy consumption of the robot 20 increases compared to when walking, energy consumption can be suppressed compared to when only the internal angular velocity ω is increased to transition from walking to running.
[0067] The hardware configuration of the control device 10 in this embodiment is the same as in Embodiment 1. In this embodiment as well, the control device 10a may include a parameter determination unit 14, similar to the robot system 100a described in the modified example of Embodiment 1. The parameter determination unit 14 in this embodiment may determine at least one of the parameters of joint angle range and internal angular velocity ω during travel. When the parameter determination unit 14 determines the joint angle range during travel, it outputs the determined joint angle range to the target value calculation unit 13, and when it determines the internal angular velocity ω during travel, it outputs the determined internal angular velocity ω to the phase update unit 12. As for the method of determining the internal angular velocity ω during travel in the parameter determination unit 14, multivariate analysis using results from experiments or simulations, machine learning, etc., can be used, but is not limited to these, similar to the method of determining the joint angle range during travel described in Embodiment 1.
[0068] Furthermore, similar to Embodiment 1, even when using parts other than joints as movable parts, the internal angular velocity ω may be changed in addition to changing the range of motion of the movable parts when switching from walking to running. Also, similar to Embodiment 1, the control devices 10 and 10a may be provided inside the robot 20.
[0069] As described above, the control devices 10 and 10a of this embodiment increase the internal angular velocity ω in addition to the maximum angular velocity to calculate the target joint angle when switching the gait pattern from walking to running, and output the calculated target joint angle. As a result, the control devices 10 and 10a can transition the gait pattern of the robot 20 from walking to running while suppressing an increase in the energy consumption of the robot 20.
[0070] Embodiment 3. Figure 14 shows an example configuration of the robot system 100b according to Embodiment 3. The robot system 100b comprises a control device 10b and a robot 20b. Components having the same functions as in Embodiment 1 are denoted by the same reference numerals as in Embodiment 1, and redundant descriptions are omitted. The following mainly describes the differences from Embodiment 1.
[0071] The control device 10b is the same as the control device 10 shown in Figure 1, except that a control quantity calculation unit 15 is added. The robot 20b is the same as the robot 20 shown in Figure 1, except that the robot control device 21 is removed from the robot 20.
[0072] The control device 10b of this embodiment calculates the target joint angle by performing the process shown in Figure 4, for example, similar to Embodiment 1, and the calculated target joint angle is input to the control amount calculation unit 15. The control amount calculation unit 15 acquires the joint angle detected by the joint angle sensor 23 from the joint angle sensor 23. Using the target joint angle and the joint angle received from the joint angle sensor 23, the control amount calculation unit 15 calculates the joint control amount, which is the control amount of the motor of the joint of the leg 22, for each joint using feedback control such as PD control or PID control, and outputs the calculated joint control amount to the motor of the corresponding joint of the leg 22. The control method by the control amount calculation unit 15 is not limited to PD control or PID control. Although not shown in Figure 14, the control device 10b may be equipped with a sensor interface that corresponds to the communication standard of the joint angle sensor 23, so that the control amount calculation unit 15 can acquire the joint angle from the joint angle sensor 23 via the sensor interface.
[0073] Figure 15 is a flowchart showing an example of the processing procedure of the control variable calculation unit 15 in Embodiment 3. Figure 15 shows the processing for one control cycle. The control cycle may be the same as or different from the update cycle for updating the target joint angle. The control variable calculation unit 15 acquires the joint angle, joint angular velocity, and target joint angle (step S11). For example, the control variable calculation unit 15 stores the joint angle received from the previous joint angle sensor 23 and calculates the joint angular velocity by subtracting the previously acquired joint angle from the latest joint angle received from the joint angle sensor 23 and dividing the result by the joint angle acquisition cycle. However, it is not limited to this; for example, a joint angular velocity sensor that detects the joint angular velocity may be used, and the control variable calculation unit 15 may acquire the joint angular velocity by acquiring the detection result of the joint angular velocity sensor. Alternatively, the joint angle sensor 23 may output both the joint angle and the joint angular velocity, and the control variable calculation unit 15 may acquire both the joint angle and the joint angular velocity from the joint angle sensor 23. In Figure 15, an example is shown in which the control variable calculation unit 15 performs PD control. However, as mentioned above, the control method is not limited to this, and in step S11, it is sufficient to acquire information corresponding to the control method. For example, if PID control is performed, in step S11, the control variable calculation unit 15 further calculates the integral value of the joint angle. If the control period is different from the update period for updating the target joint angle, in step S11, it is sufficient to acquire the latest target joint angle.
[0074] The control amount calculation unit 15 calculates and outputs the joint control amount, which is the control amount of the joint angle of the joint (step S12), and terminates the process. Specifically, for each joint, the control amount calculation unit 15 calculates the joint control amount using PD control with respect to the joint angle, joint angular velocity, and target joint angle acquired in step S11, and outputs the calculated joint control amount to each joint of the leg 22. As a result, each joint is controlled to match the target joint angle.
[0075] Furthermore, similar to Embodiment 1, the control device 10b of this embodiment may be provided inside the robot 20b. Also, although Figure 15 shows an example in which a control amount calculation unit 15 is added to the control device 10 of the robot system 100 shown in Figure 1, the invention is not limited to this, and the control amount calculation unit 15 may be added to the control device 10a of the robot system 100a shown in Figure 10, and the robot control device 21 may be removed from the robot 20. In addition, the control amount calculation unit 15 may be added to the control devices 10, 10a that perform the operations described in Embodiment 2, and the robot control device 21 may be removed from the robot 20.
[0076] Furthermore, in this embodiment as well, as described in Embodiment 1, parts other than joints may be used as movable parts, in which case the range of motion of the movable parts will be changed when switching from walking to running. The control amount calculation unit 15 calculates a control amount for controlling the movable parts and outputs the calculated control amount to the movable parts.
[0077] The hardware configuration of the control device 10b in this embodiment is the same as that of the control devices 10 and 10a described in Embodiment 1, and is implemented, for example, by the computer system illustrated in Figure 12. The control variable calculation unit 15 is implemented by the processing unit 101 executing a program. The storage device 102 is also used to implement the control variable calculation unit 15.
[0078] As described above, the control device 10b calculates the target joint angle during running, similar to Embodiment 1 or Embodiment 2, and uses the calculated target joint angle to calculate the joint control amount for the joints of the legs 22 of the robot 20b. This allows the control device 10b to transition the gait pattern of the robot 20b from walking to running while suppressing an increase in the energy consumption of the robot 20b.
[0079] The configurations shown in the above embodiments are merely examples, and it is possible to combine them with other known technologies, combine different embodiments, and omit or modify parts of the configuration without departing from the gist of the invention. [Explanation of Symbols]
[0080] 10,10a,10b Control device, 11 Reception unit, 12 Phase update unit, 13 Target value calculation unit, 14 Parameter determination unit, 15 Control amount calculation unit, 20,20b Robot, 21 Robot control device, 22 Legs, 23 Joint angle sensor, 24 Pressure sensor, 30,31,32,33,34,36,37 Input fields, 35 Confirmation button, 100,100a,100b Robot system, 101 Processing unit, 102 Storage device, 103 Input interface, 104 Operating device, 105 Display interface, 106 Display device, 221 First joint, 222 Second joint.
Claims
1. In response to a change in the robot's gait pattern, the parameters affecting the ground reaction force at the base of the robot's legs are switched. Based on the aforementioned parameters, control information used for controlling the leg is output. The aforementioned parameters include range information indicating the range of motion of the movable part of the leg, When i is the identification number for the leg, Ni is the ground reaction force at the foot of the i-th leg, ω is the internal angular velocity indicating the length of the leg's motion cycle, σ is the weighting coefficient indicating the feedback weight, and φi is the phase in the motion cycle of the i-th leg, then φi is determined by the following equation (1): [Math 1] When j is an integer representing the number of the joint which is the movable part of the leg, home_angle i,j is the midpoint of the range of motion of the j-th joint of the i-th leg, a i,j is a value representing the width of the range of motion, and bi i,j is the phase difference between φi and the variation in the joint angle with respect to the j-th joint of the i-th leg, the target joint angle angle i,j of the j-th joint of the i-th leg is determined as the control information by the following formula (2): [Math 2] The aforementioned gait pattern includes walking and running. The range information is set such that the range of motion during driving is wider than the range of motion during walking. A control device characterized by the following features.
2. A control amount calculation unit calculates a control amount for the joint angle of the joint using the target joint angle and the detection result of the joint angle of the joint, and outputs the calculated control amount to the joint. The control device according to claim 1, characterized by comprising:
3. The control device according to claim 1 or 2, characterized in that the parameter includes internal angular velocity.
4. The control device according to claim 3, characterized in that the parameters are set such that the internal angular velocity during travel is faster than the internal angular velocity during walking.
5. A parameter determination unit that determines the range information during driving. The control device according to claim 1 or 2, characterized by comprising:
6. A robot equipped with legs, Control device and Equipped with, The control device is In response to a change in the robot's gait pattern, the parameters affecting the ground reaction force at the base of the legs are switched. Based on the aforementioned parameters, control information used for controlling the leg is output. The aforementioned parameters include range information indicating the range of motion of the movable part of the leg, When i is the identification number for the leg, Ni is the ground reaction force at the foot of the i-th leg, ω is the internal angular velocity indicating the length of the leg's motion cycle, σ is the weighting coefficient indicating the feedback weight, and φi is the phase in the motion cycle of the i-th leg, then φi is determined by the following equation (1): [Math 1] When j is an integer representing the number of the joint which is the movable part of the leg, home_angle i,j is the midpoint of the range of motion of the j-th joint of the i-th leg, a i,j is a value representing the width of the range of motion, and bi i,j is the phase difference between φi and the variation in the joint angle with respect to the j-th joint of the i-th leg, the target joint angle angle i,j of the j-th joint of the i-th leg is determined as the control information by the following formula (2): [Math 2] The aforementioned gait pattern includes walking and running. The range information is set such that the range of motion during driving is wider than the range of motion during walking. A robotic system characterized by the following features.
7. Legs and, Control device and Equipped with, The control device is Depending on the change in gait pattern, the parameters that affect the ground reaction force at the foot of the leg are switched. Based on the aforementioned parameters, control information used for controlling the leg is output. The aforementioned parameters include range information indicating the range of motion of the movable part of the leg, When i is the identification number for the leg, Ni is the ground reaction force at the foot of the i-th leg, ω is the internal angular velocity indicating the length of the leg's motion cycle, σ is the weighting coefficient indicating the feedback weight, and φi is the phase in the motion cycle of the i-th leg, then φi is determined by the following equation (1): [Math 1] When j is an integer representing the number of the joint which is the movable part of the leg, home_angle i,j is the midpoint of the range of motion of the j-th joint of the i-th leg, a i,j is a value representing the width of the range of motion, and bi i,j is the phase difference between φi and the variation in the joint angle with respect to the j-th joint of the i-th leg, the target joint angle angle i,j of the j-th joint of the i-th leg is determined as the control information by the following formula (2): [Math 2] The aforementioned gait pattern includes walking and running. The range information is set such that the range of motion during driving is wider than the range of motion during walking. A robot characterized by the following features.
8. In the computer system, A step of switching parameters that affect the ground reaction force at the feet of the robot's legs in response to a change in the robot's gait pattern, A step of outputting control information used for controlling the leg based on the aforementioned parameters, A program that executes, The aforementioned parameters include range information indicating the range of motion of the movable part of the leg, When i is the identification number for the leg, Ni is the ground reaction force at the foot of the i-th leg, ω is the internal angular velocity indicating the length of the leg's motion cycle, σ is the weighting coefficient indicating the feedback weight, and φi is the phase in the motion cycle of the i-th leg, then φi is determined by the following equation (1): [Math 1] When j is an integer representing the number of the joint which is the movable part of the leg, home_angle i,j is the midpoint of the range of motion of the j-th joint of the i-th leg, a i,j is a value representing the width of the range of motion, and bi i,j is the phase difference between φi and the variation in the joint angle with respect to the j-th joint of the i-th leg, the target joint angle angle i,j of the j-th joint of the i-th leg is determined as the control information by the following formula (2): [Math 2] The aforementioned gait pattern includes walking and running. The range information is set such that the range of motion during driving is wider than the range of motion during walking. A program characterized by the following features.
9. The control device In response to a change in the robot's gait pattern, the parameters affecting the ground reaction force at the base of the robot's legs are switched. Based on the aforementioned parameters, control information used for controlling the leg is output. The aforementioned parameters include range information indicating the range of motion of the movable part of the leg, When i is the identification number for the leg, Ni is the ground reaction force at the foot of the i-th leg, ω is the internal angular velocity indicating the length of the leg's motion cycle, σ is the weighting coefficient indicating the feedback weight, and φi is the phase in the motion cycle of the i-th leg, then φi is determined by the following equation (1): [Math 1] When j is an integer representing the number of the joint which is the movable part of the leg, home_angle i,j is the midpoint of the range of motion of the j-th joint of the i-th leg, a i,j is a value representing the width of the range of motion, and bi i,j is the phase difference between φi and the variation in the joint angle with respect to the j-th joint of the i-th leg, the target joint angle angle i,j of the j-th joint of the i-th leg is determined as the control information by the following formula (2): [Math 2] The aforementioned gait pattern includes walking and running. The range information is set such that the range of motion during driving is wider than the range of motion during walking. A control method characterized by the following: