ROBOT CONTROL DEVICE, ROBOT CONTROL METHOD, AND PROGRAM
Patent Information
- Application Number
- JP2021096353
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-09
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2041-06-09
AI Technical Summary
【0032】 本発明によれば、運動指令を計算する時間が長い時間となることを許容し、ロボットが転倒することなく、ロボットに多様な運動をさせることができるロボット制御装置、ロボット制御方法、および、プログラムを実現することができる。
Smart Images

Figure 0007634878000017 
Figure 0007634878000018 
Figure 0007634878000019
Abstract
Description
[Technical field]
[0001] The present invention relates to a technique for controlling the movement of a robot such as a humanoid robot. [Background technology]
[0002] In recent years, robots (e.g., humanoid robots) that can walk or perform other actions while maintaining their posture have been developed. In order to allow such robots to perform a variety of actions, a technique for appropriately controlling the posture of the robot is required. As a technique for appropriately controlling the posture of such a robot, for example, Prior Art Document 1 discloses a technique for treating the robot as an inverted pendulum and maintaining the posture of the robot. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Special Publication No. 2012-40644 Summary of the Invention [Problem to be solved by the invention]
[0004] In general, when making a robot perform a specific motion (when generating robot motion), it is possible to make the robot perform a specific action (motion) by giving commands to the actuators installed in the robot. In other words, when making a robot perform a specific motion (when generating robot motion), (1) commands to the actuators of By repeating the sequence of (1) calculating, (2) inputting the calculated commands into the robot, and (3) making the robot move, it is possible to make the robot perform a specified movement.
[0005] Since a humanoid robot has many actuators, it takes a long time to calculate motion commands (commands for moving the robot) for all the actuators of the humanoid robot. To address this, methods for shortening the time to calculate motion commands have been developed. The technology of Patent Document 1 uses such a method (a method for shortening the time to calculate motion commands), and regards the robot as an inverted pendulum, simplifies the process of calculating the motion commands, and shortens the time to calculate the motion commands.
[0006] However, while such techniques can enable a robot to perform limited movements such as walking and running, it is difficult to enable the robot to perform more complex movements without falling over.
[0007] In view of the above problems, an object of the present invention is to provide a robot control device, a robot control method, and a program that can allow the time required for calculating movement commands to be long and cause a robot to perform a variety of movements without causing the robot to fall over. [Means for solving the problem]
[0008] In order to solve the above problems, a first invention is a robot control device for controlling a robot to cause the robot to perform a predetermined movement, comprising a goal generation unit, a model predictive control unit, a PD control unit, and a synthesis unit.
[0009] The goal generator generates goal data for causing the robot to perform a predetermined motion.
[0010] The model prediction control unit performs model prediction processing using a model that complies with dynamic constraints for causing the robot to perform a specified movement based on the target data, thereby obtaining control input for the MPC, which is a control input for controlling the robot.
[0011] The PD control unit acquires a control input for PD control, which is a control input for maintaining the robot in an equilibrium state, based on the target data and the state of the robot.
[0012] The synthesis unit outputs a control input obtained by synthesizing the control input for MPC and the control input for PD control to the driving device of the robot, or outputs either the control input for MPC or the control input for PD control to the driving device of the robot.
[0013] This robot control device can perform hierarchical control, that is, (1) model prediction processing (upper layer control) by a model prediction control unit (processing to calculate a motion command by model prediction processing), and (2) PD control (lower layer control) by a PD control unit (control to maintain the robot's posture (control to maintain a balanced state)). As a result, this robot control device can tolerate a long time for calculating the motion commands, and can cause the robot to perform a variety of motions without falling over.
[0014] A second invention is the first invention, in which the model predictive control unit acquires (or updates) a control input for MPC at a first time interval, and the PD control unit acquires (or updates) a control input for PD control at a second time interval that is a time interval shorter than the first time interval.
[0015] As a result, in this robot control device, the processing time in the model predictive control unit can be made longer than the processing time in the PD control unit.
[0016] A third invention is the first or second invention, wherein the goal generation unit outputs the target data to be output to the PD control unit as target data for PD control, which is data only related to data necessary to maintain the equilibrium state of the robot.
[0017] In this robot control device, only data related to data required to maintain the robot in a balanced state (for example, data on the angles of the robot's joints) is output to the PD control unit, so that processing in the PD control unit can be performed efficiently.
[0018] A fourth invention is the third invention, wherein the model prediction control unit executes a model prediction process to predict the target trajectory of the robot for N time steps (N: natural number), and performs a process to optimize a sequence of state vectors representing the state of the robot over a period of N time steps, a sequence of local feedback gains, and a sequence of control inputs for the MPC based on the target data and the current state of the robot, thereby obtaining an optimal state vector sequence, an optimal local feedback gain sequence, and an optimal sequence of control inputs for the MPC over a period of N time steps.
[0019] The PD control unit includes a first PD control unit, a second PD control unit, and an adder unit.
[0020] The first PD control unit obtains a control input for PD control for model prediction using a state vector representing the current state of the robot and the optimal state vector sequence and optimal local feedback gain sequence obtained by the model predictive control unit.
[0021] The second PD control unit obtains a control input for PD control for maintaining the robot in an equilibrium state, using a state vector representing the current state of the robot and target data for PD control.
[0022] The adder adds together the control input for PD control regarding the model prediction acquired by the first PD control unit and the control input for PD control for maintaining an equilibrium state of the robot acquired by the second PD control unit.
[0023] As a result, in this robot control device, the first PD control unit can obtain a control input for PD control regarding the model prediction, and the second PD control unit can obtain a control input for PD control for maintaining the robot in an equilibrium state.
[0024] A fifth invention is a robot control method for controlling a robot to cause the robot to execute a predetermined motion, comprising a target generation step, a model predictive control step, a PD control step, and a synthesis step.
[0025] The target generating step generates target data for causing the robot to perform a predetermined motion.
[0026] The model predictive control step performs model predictive processing using a model that complies with dynamic constraints for causing the robot to perform a specified movement based on the target data, thereby obtaining a control input for the MPC, which is a control input for controlling the robot.
[0027] The PD control step acquires a control input for PD control, which is a control input for maintaining the robot in an equilibrium state, based on the target data and the state of the robot.
[0028] The synthesis step outputs a control input obtained by synthesizing the control input for the MPC and the control input for the PD control to a drive device of the robot, or outputs either the control input for the MPC or the control input for the PD control to a drive device of the robot.
[0029] This makes it possible to realize a robot control method that achieves the same effects as the first aspect of the present invention.
[0030] A sixth aspect of the present invention is a program for causing a computer to execute the robot control method according to the fifth aspect of the present invention.
[0031] This makes it possible to realize a program for causing a computer to execute a robot control method that achieves the same effects as the first aspect of the present invention. Effect of the Invention
[0032] According to the present invention, it is possible to realize a robot control device, a robot control method, and a program that allow the time required for calculating movement commands to be long and enable the robot to perform a variety of movements without causing the robot to fall over. [Brief description of the drawings]
[0033] [Figure 1] 1 is a schematic configuration diagram of a robot control device 100 according to a first embodiment. [Diagram 2] 3 is a sequence diagram (timing chart) of the processing executed by the robot control device 100. [Diagram 3] FIG. 13 is a diagram showing the state of the robot when it is made to perform a predetermined motion. [Figure 4] FIG. 13 is a diagram showing the state of the robot when it is made to perform a predetermined motion. [Diagram 5] A diagram showing the CPU bus configuration. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0034] [First embodiment] The first embodiment will be described below with reference to the drawings.
[0035] <1.1: Configuration of the robot control device> FIG. 1 is a schematic configuration diagram of a robot control device 100 according to the first embodiment.
[0036] The robot control device 100 is a device for controlling the robot Rbt, and is a device for controlling the robot Rbt to perform a predetermined operation by acquiring data from a sensor Rbt_snsr mounted on the robot Rbt and driving an actuator Rbt_actr mounted on the robot Rbt. The robot control device 100 is mounted on the robot Rbt.
[0037] As shown in FIG. 1, the robot control device 100 includes a target generator 1, a model predictive control unit 2, a PD (Proportional Differential) control unit 3, and a synthesis unit 4.
[0038] The target generator 1 inputs data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. Based on the state vector x, the target generator 1 generates (1) target data Q for the model predictive control unit 2. e and (2) target data Q for the PD control unit 3. e 2. The target generator 1 then calculates the calculated target data Q e is output to the model prediction control unit 2, and the calculated target data Q e 2 is output to the PD control unit 3.
[0039] The model predictive control unit 2 receives data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. The model predictive control unit 2 also receives target data Q output from the target generation unit 1. e The model prediction control unit 2 inputs the state vector x and the target data Q e Based on this, model prediction processing is performed, and the motor command data U * (The optimal control input sequence U * ) and obtain the motor command data U * (This is called "MPC motor command data U * "), or motor command data U * The control input u for the current time step contained in MPC to the synthesis unit 4. Also, the model prediction control unit 2 outputs the optimal state sequence data X * and the locally optimal feedback gain data sequence G * and obtain the optimal state sequence data X * and the locally optimal feedback gain data sequence G * is output to the PD control unit 3.
[0040] As shown in FIG. 1, the PD control unit 3 includes a first PD control unit 31, a second PD control unit 32, and an adder unit 33.
[0041] The first PD control unit 31 receives data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. The first PD control unit 31 also receives the optimal state sequence data X * and the locally optimal feedback gain data sequence G * The first PD control unit 31 receives the state vector x and the optimal state sequence data X * , and the locally optimal feedback gain data sequence G * Based on this, the PD control motion command data for model predictive control (MPC) is PD-MPC (This is called the "PD-MPC motor command data PD-MPC ") and obtain the motor command data for PD-MPC. PD-MPC is output to the adder 33.
[0042] The second PD control unit 32 receives data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. The second PD control unit 32 also receives target data Q output from the target generation unit 1. e 2. The second PD control unit 32 receives the state vector x and the target data Q e 2 and 3, the motion command data u for PD control to maintain the posture of the robot Rbt is calculated. PD-equiv (This is called the "PD-equiv motor command data" PD-equiv ") and obtain the motor command data for PD-equiv. PD-equiv is output to the adder 33.
[0043] The adder 33 receives the PD-MPC motion command data u output from the first PD control unit 31. PD-MPC and the PD-equiv motion command data u output from the second PD control unit 32.PD-equiv The adder 33 inputs the PD-MPC motion command data u PD-MPC and the motor command data for PD-equiv PD-equiv By performing addition processing on and, the motion command data u for PD control of the robot Rbt is obtained. PDs (=u PD-MPC +u PD-equiv ) (This is called the "PD control motion command data u PDs The adder 33 then obtains the motion command data for PD control u PDs is output to the synthesis unit 4.
[0044] The synthesis unit 4 synthesizes the MPC motion command data U * Or motor command data U * The control input u for the current time step contained in MPC and the PD control motion command data u output from the adder 33 of the PD control unit 3. PDs The synthesis unit 4 inputs the MPC motion command data U * Or motor command data U * The control input u for the current time step contained in MPC and the motion command data for PD control u PDs and a process of combining (for example, adding) the torque vector τ (for example, τ = u MPC +u PDs , u MPC is U * In addition, when the number of actuators to be controlled mounted on the robot Rbt is n (n: natural number), the torque output from the robot control device 100 to the i-th actuator (i: natural number, i≦n) is calculated as τ i Then, the torque vector τ is τ T =[τ1,τ2,...,τ n ] τ T :Transpose of vector τ (transpose of n-by-1 matrix τ) It is.
[0045] The synthesis unit 4 outputs the acquired torque vector τ to the actuator Rbt_actr of the robot Rbt.
[0046] The robot Rbt is a robot (for example, a humanoid robot) that can perform various actions (various movements) while maintaining a posture, and is an object to be controlled by the robot control device 100.
[0047] The robot Rbt is equipped with various sensors (e.g., angle sensors, inertial measurement units (IMUs), cameras, etc.) that can acquire predetermined physical quantities, and actuators (e.g., driving devices for generating power to rotate and move the joints of the robot Rbt) for performing various operations (various movements).
[0048] Data for identifying the state of the robot is acquired by various sensors (e.g., angle sensors, an inertial measurement unit (IMU), a camera, etc.) mounted on the robot, and the acquired data is output to the robot control device 100 as a state vector x. The state vector x includes, for example, (1) data indicating the positions of predetermined parts of the robot Rbt, (2) data for identifying the posture of the robot Rbt (posture in three-dimensional space), (3) angles of the joints of the robot Rbt, and (4) time derivative data thereof. The above data (1) to (4) are acquired by processing sensors and sensor signals mounted on the robot.
[0049] The actuators mounted on the robot Rbt are driven to receive a torque vector τ output from the robot controller 100 and output a torque specified by the torque vector τ. For example, if the number of actuators mounted on the robot Rbt and controlled by the robot controller 100 is n, the i-th actuator is driven by a torque vector τ (τ T =[τ1,τ2,...,τn ]) the i-th element τ i The torque specified by is output from the robot control device 100, and the i-th actuator is a torque τ i It is driven by.
[0050] In this manner, the actuators mounted on the robot Rbt are driven by the torque vector τ output from the robot control device 100, causing the robot Rbt to perform a predetermined motion (movement).
[0051] <1.2: Operation of the robot control device> The operation of the robot control device 100 configured as above will be described below.
[0052] FIG. 2 is a sequence diagram (timing chart) of the processing executed by the robot control device 100. As shown in FIG.
[0053] The operation of the robot control device 100 will be described below with reference to the sequence diagram (timing chart) of FIG.
[0054] <Initialization process (time t0 to t1)> First, the initialization process (the process from time t0 to time t1 in FIG. 2) will be described.
[0055] In the initialization process, the target generator 1 inputs data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x (state vector x of the initial state). Based on the state vector x, the target generator 1 (1) generates target data Q for the model predictive control unit 2. e and (2) target data Q for the PD control unit 3. e 2. The specific processing in the goal generator 1 will be described below.
[0056] First, the state vector x (a vector (1 × nx matrix) with nx (nx: natural number) real numbers as elements) is defined as follows:
number
[0057] In addition, the control input u to the robot Rbt is a vector (1×nu matrix) with nu real numbers as elements (nu: natural number). In other words, it satisfies the following formula.
number
[0058] In addition, the robot control device 100 predicts a motion trajectory for N time steps, and (1) a state vector sequence X k , and (2) the control input sequence U k is defined as follows:
number
number
number
number
[0059] The target generator 1 calculates the parameters {A i ,B i ,γ i ,v i ,ω i}, the equilibrium state variable vector q at time step k is e k The target generator 1 then sets the equilibrium state variable vector for time steps k+1 to k+N-1 in the same manner, and sets the equilibrium trajectory Q e k (={q e k ,q e k+1 , ,q e k+N-1}) to get the
[0060] The target generator 1 generates the equilibrium trajectory Q for N time steps set as described above. e k (={q e k ,q e k+1 , ,q e k+N-1}) to target data Q e and outputs the result to the model prediction control unit 2.
[0061] In addition, the target generator 1 generates equilibrium trajectories Q e k (={q e k ,q e k+1 , ,q e k+N-1}), only the data related to angles (data on the angles of the joints, etc., necessary to maintain the equilibrium state of the robot Rbt) is extracted and used as target data Q for the PD control unit 3. e 2. That is, the vector q e k ,q e k+1 , ,q e k+N-1In this case, we extract only the data related to angles (data on the angles of the joints, etc., required to maintain the equilibrium state of the robot Rbt) (this is called q ’e k ) is acquired, and the data including the acquired data (vector) is output as target data Q e 2(={q ’e k ,q ’e k+1 , ,q ’e k+N-1})
[0062] Then, the target generator 1 generates the acquired target data Q e 2 to the second PD control unit 32 of the PD control unit 3.
[0063] The model predictive control unit 2 receives data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. The model predictive control unit 2 also receives target data Q output from the target generation unit 1. e The model prediction control unit 2 inputs the state vector x and the target data Q e Based on this, model prediction processing is performed, and the motor command data U * Specifically, the model prediction control unit 2 executes the following process.
[0064] First, the cost function loss is defined as follows:
number
number
number
number
[0065] In the above formula, the equation of motion is expressed by a differential equation. However, in order to remove the differential terms, for example, Euler integration (for example, processing using the Euler integration method according to the method disclosed in Prior Art Document A below) may be performed, and the dynamic constraints may be expressed by an equation from which the differential terms have been removed. (Prior art document A): Y. Tassa, T. Erez, and E. Todorov, “Synthesis and stabilization of complex behaviors through online trajectory optimization,” in 2012 IEEE / RSJ International Conference on Intelligent Robots and Systems. IEEE, 2012, pp. 4906-4913. The model prediction control unit 2 uses the model (mechanical model) expressed as above to perform optimization processing (model optimization processing) by making predictions for N time steps (predictions from the present time to the future, up to (N-1) time steps ahead) and searching for a solution that satisfies the set trajectory target.
[0066] For example, the model predictive control unit 2 performs optimization processing (model optimization processing) by iLQR (linear-quadratic regulator). In iLQR, LQR (Linear-quadratic regulator), which assumes that the model is locally linear, is extended to a nonlinear model. Specifically, in iLQR, the dynamic model (model defined by the state transition function) is approximated to the first order (approximation is performed up to the first derivative term of Taylor expansion), and the cost function is approximated to the second order (approximation is performed up to the second derivative term of Taylor expansion). That is, in iLQR, the dynamic model f and the cost function c are expressed as follows:
number
number
number
number
[0067] In addition, the model predictive control unit 2 calculates the control input u at each time step when the optimal trajectory is obtained by iLQR. * (optimal control input u * ) and obtain the optimal control input sequence U * k (={u * k ,u * k+1 ,···,u *k+N-1}) and holds it. Then, the model predictive control unit 2 receives the control input u PDs (PD control input u PDs ) is acquired (the control input for PD control u PDs and the optimal control input sequence U * k (or control input u MPC (=u * k )) and the optimal control input sequence U * k (or control input u MPC (=u * k )) to the synthesis unit 4. In the case shown in FIG. 2, the model prediction control unit 2 outputs 1e , time t 11e , time t 12e ,..., time t me (After the initialization process is completed and the motion generation process is started (in the case of Figure 2, after time t1), the optimal control input sequence U * k (or control input u MPC (=u * k )) to the synthesis unit 4. In FIG. 2, the optimal control input sequence U * k (or control input u MPC (=u * k )) is shown as "Output 1".
[0068] The model predictive control unit 2 calculates the optimal control input sequence U * k The control input for the current time step (time step k) is u * k The control input u MPC For ease of explanation, the model predictive control unit 2 may output the control input u MPC (=u *k ) is output to the synthesis unit 4.
[0069] The iLQR process executed by the model prediction control unit 2 may be executed using the technique of Prior Art Document B below. (Prior art document B): E. Todorov, C. Hu, A. Simpkins, and J. Movellan, "A generalized iterative lqg method for locally-optimal feedback control of constrained nonlinear stochastic systems," 2005, pp. 300-306. The synthesis unit 4 synthesizes the MPC motion command data U * Control input u MPC (=u * k During the initialization process, there is no output from the PD control unit 3, so the synthesis unit 4 receives the control input u MPC (=u * k ) into the torque vector τ(=u MPC ) and output it to the actuator Rbt_actr of the robot Rbt (at time t 01 (equivalent to the MPC output of
[0070] As a result, the robot Rbt is MPC ) is performed, and the robot Rbt is in the initial state. Note that, during the initialization process, the output from the synthesis unit 4 may be omitted (the torque vector may be output from the synthesis unit 4 from the next time step to control the robot Rbt).
[0071] As described above, the initialization process is performed in the robot control device 100.
[0072] <Movement generation process (time t1 to t2)> Next, the motion generation process (the process from time t1 to time t2 in FIG. 2) will be described.
[0073] <Processing from time t1> First, the process from time t1 will be described.
[0074] The first PD control unit 31 receives data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. The first PD control unit 31 also receives the optimal state sequence data X * and the locally optimal feedback gain data sequence G * The first PD control unit 31 receives the state vector x and the optimal state sequence data X * , and the locally optimal feedback gain data sequence G * Based on this, the PD control motion command data for model predictive control (MPC) is PD-MPC (PD-MPC motor command data PD-MPC ) is obtained (processing starts from time t1 in Figure 2).
[0075] Specifically, the first PD control unit 31 executes a process corresponding to the following formula to obtain the PD-MPC motion command data u PD-MPC (PD-MPC control input PD-MPC ) to get the
number
[0076] Furthermore, as can be seen from the above formulas, the processing executed by the first PD control unit 31 is only PD control, i.e., proportional control (control for multiplying a gain) and differential control (processing of data on the time derivative of variables included in the state vector), and therefore high-speed processing is possible.
[0077] Then, the first PD control unit 31 converts the motion command data for PD-MPC acquired by the above process into the motion command data u PD-MPC (PD-MPC control input PD-MPC ) to the adding unit 33.
[0078] The second PD control unit 32 receives data acquired by sensors (e.g., angle sensors, inertial measurement units, cameras, etc.) mounted on the robot Rbt as a state vector x. The second PD control unit 32 also receives target data Q output from the target generation unit 1. e 2 (The target data Q set by the target generation unit 1 during the initialization process) e 2) is input to the second PD control unit 32. The second PD control unit 32 receives the state vector x and the target data Q e 2 and 3, the motion command data u for PD control to maintain the posture of the robot Rbt is calculated. PD-equiv (Motor command data for PD-equiv PD-equiv ) is obtained (processing starts from time t1 in Figure 2).
[0079] Specifically, the second PD control unit 32 executes a process corresponding to the following formula to obtain the PD-equiv motion command data u PD-equiv (PD-equiv control input u PD-MPC ) to get the
number
[0080] The second PD control unit 32 then converts the motion command data u for PD-equiv acquired by the above process into PD-equiv (PD-equiv control input u PD-MPC ) to the adding unit 33.
[0081] The adder 33 receives the PD-MPC motion command data u output from the first PD control unit 31. PD-MPC and the PD-equiv motion command data u output from the second PD control unit 32. PD-equiv The adder 33 inputs the PD-MPC motion command data u PD-MPC and the motor command data for PD-equiv PD-equiv By performing addition processing on and, the motion command data u for PD control of the robot Rbt is obtained. PDs (=u PD-MPC +u PD-equiv )(PD control motion command data u PDs ) is acquired. The adder 33 then adds the acquired PD control motion command data u PDs (PD control input u PDs ) is output to the synthesis unit 4.
[0082] The synthesis section 4 receives the control input u MPC and the motion command data for PD control u PDs (PD control input u PDs In other words, the synthesis unit 4 performs a process (for example, an addition process) of synthesizing the control input u MPC(=u * k )(In Figure 2, the control input u obtained in "Model predictive control (Process 1)" MPC (=u * k ) (data shown as "Output 1" in Figure 2)) is used as the control input for MPC u MPC As the control input for MPC, MPC and the control input for PD control, u PDs That is, the synthesis unit 4 performs a process of synthesizing τ=u MPC +u PDs The torque vector τ is obtained by a process equivalent to the above.
[0083] Then, the synthesis unit 4 outputs the obtained torque vector τ to the actuator Rbt_actr of the robot Rbt (at time t 1e (equivalent to the PD output of
[0084] As a result, the robot Rbt is MPC +u PDs In other words, in the robot control device 100, the torque vector τ (=u MPC +u PDs ), it is possible to cause the robot Rbt to move along a target trajectory (movement that achieves a set goal) while appropriately maintaining the posture of the robot Rbt.
[0085] From time t1, the target generation unit 1 executes a target generation process, similar to the initialization process. Furthermore, the model prediction control unit 2 executes a model prediction process, similar to the initialization process. The model prediction control unit 2 then executes the following: (1) Optimal state sequence data X * k (={x * k ,x * k+1 ,···,x * k+N-1}), (2) Locally optimal feedback gain data sequence G * k (={L * k ,L * k+1 ,···,L * k+N-1}) to the first PD control unit 31 of the PD control unit 3 after time t2 (the time after the model prediction process is completed), as shown in FIG.
[0086] ≪Time t 11s Processing from Next, at time t 11s The process from will be described.
[0087] time t 11s In the process from step 1, the following steps are executed.
[0088] The first PD control unit 31 receives data acquired by sensors (for example, an angle sensor, an inertial measurement unit, a camera, etc.) mounted on the robot Rbt as a state vector x.
[0089] The first PD control unit 31 also receives the state vector x and the optimal state sequence data X * , and the locally optimal feedback gain data sequence G * Based on this, the motion command data for PD control for model predictive control is PD-MPC (PD-MPC motor command data PD-MPC ) (time t in Figure 2) 11s (Processing from ).
[0090] Specifically, the first PD control unit 31 11s By performing the same processing as the processing from the PD-MPC, the motor command data u PD-MPC (PD-MPC control input PD-MPC ) to get the
[0091] Then, the first PD control unit 31 converts the motion command data for PD-MPC acquired by the above process into the motion command data uPD-MPC (PD-MPC control input PD-MPC ) to the adding unit 33.
[0092] The second PD control unit 32 receives data acquired by sensors (for example, an angle sensor, an inertial measurement unit, a camera, etc.) mounted on the robot Rbt as a state vector x.
[0093] The second PD control unit 32 receives the state vector x and the target data Q obtained in the process from time t1. e 2 and 3, the motion command data u for PD control to maintain the posture of the robot Rbt is calculated. PD-equiv (Motor command data for PD-equiv PD-equiv ) (time t in Figure 2) 11s (Processing from ).
[0094] Specifically, the second PD control unit 32 11s By performing the same process as above, the motor command data for PD-equiv is obtained. PD-equiv (PD-equiv control input u PD-MPC ) to get the
[0095] The adder 33 receives the PD-MPC motion command data u output from the first PD control unit 31. PD-MPC and the PD-equiv motion command data u output from the second PD control unit 32. PD-equiv The adder 33 inputs the PD-MPC motion command data u PD-MPC and the motor command data for PD-equiv PD-equiv By performing addition processing on and, the motion command data u for PD control of the robot Rbt is obtained. PDs (=u PD-MPC +u PD-equiv )(PD control motion command data u PDs ) is acquired. The adder 33 then adds the acquired PD control motion command data u PDs (PD control input u PDs ) is output to the synthesis unit 4.
[0096] The synthesis section 4 receives the control input uMPC and the motion command data for PD control u PDs (PD control input u PDs In other words, the synthesis unit 4 performs a process (for example, an addition process) of synthesizing the control input u MPC (=u * k )(In Figure 2, the control input u obtained in "Model predictive control (Process 1)" MPC (=u * k ) (data shown as "Output 1" in Figure 2)) is used as the control input for MPC u MPC As the control input for MPC, MPC and the control input for PD control, u PDs That is, the synthesis unit 4 performs a process of synthesizing τ=u MPC +u PDs The torque vector τ is obtained by a process equivalent to the above.
[0097] Then, the synthesis unit 4 outputs the obtained torque vector τ to the actuator Rbt_actr of the robot Rbt (at time t 11e (equivalent to the PD output of
[0098] As a result, the robot Rbt is MPC +u PDs In other words, in the robot control device 100, the torque vector τ (=u MPC +u PDs ), it is possible to cause the robot Rbt to move along a target trajectory (movement that achieves a set goal) while appropriately maintaining the posture of the robot Rbt.
[0099] ≪Time t 12s Processing from time t 12s As a process from time t 11sThe model prediction process by the model predictive control unit 2 (model prediction process executed after the target generation process at time t1) is completed, and the control input u MPC This is executed repeatedly until the
[0100] In this way, in the robot control device 100, the control input u acquired by the first PD control unit 31 and the second PD control unit 32 PDs (the control input required to maintain the posture of the robot Rbt) for a short period of time (control input u PDs Update period (update interval) Δt low (For example, Δt low = 2 ms)) can be output continuously (short update interval Δt low The control input for PD control, u, is updated by PDs and the control input u obtained by the model predictive control unit 2 at the time of initialization. MPC (=u * k ) and the combined output (torque vector τ(=u MPC +u PDs In other words, in the robot control device 100, even while performing the time-consuming model prediction process, the control input for maintaining the posture of the robot Rbt (maintaining the equilibrium state of the robot Rbt) can be acquired by the PD control, and the control input can be output continuously at short time intervals (short update intervals Δt low The control input for PD control, u, is updated by PDs and the control input u obtained by the model predictive control unit 2 at the time of initialization. MPC (=u * k ) and the combined output (torque vector τ(=u MPC +u PDs ) can be output consecutively.
[0101] Therefore, in the robot control device 100, the control input u MPC Update period (update interval) Δt u (For example, Δt uEven while such a model prediction process is being performed (time t1, t2, t3, t4) (=100 ms), the posture of the robot Rbt can be appropriately maintained.
[0102] In the case of Figure 2, at time t 11 At time t 10 ~time t 11 The control input for MPC, u, obtained in the model prediction process MPC The control input for MPC, u, obtained during the initialization process, MPC Update the control input for MPC u MPC Then, the model predictive control unit 2 holds the control input u by the PD control unit 3 in the same manner as in the initialization process. PDs (PD control input u PDs ) is acquired (the control input for PD control u PDs and the optimal control input sequence U * k The control input u contained in MPC (=u * k ) and the above model prediction process (in the case of Figure 2, time t 10 ~time t 11 The control input u obtained and held in the model prediction process MPC (=u * k ) to the synthesis unit 4. In the case shown in FIG. 2, the model prediction control unit 2 outputs 2e , time t 21e , time t 22e , (the time after the model prediction process (process 2) is completed), 10 ~time t 11 The control input u MPC (=u * k ) to the synthesis unit 4. In FIG. 2, the optimal control input sequence U * kThe control input u contained in MPC (=u * k ) is shown as “Output 2”.
[0103] <Movement generation process (time t2 to t3)> The motion generation process (the process from time t2 to time t3 in FIG. 2) will be described.
[0104] From time t2 to t3, the same processing as that from time t1 to t2 described above is executed. Note that in the synthesis unit 4, the following processing is executed.
[0105] The synthesis unit 4 is a unit that performs the model prediction process (time t 10 ~t 11 )) The control input u MPC (=u * k ) (In Figure 2, the control input u obtained in "Model predictive control (process 2)" MPC (=u * k ) (data shown as "Output 2" in Figure 2)) is used as the control input for MPC u MPC As the control input for MPC, MPC and the control input for PD control, u PDs That is, the synthesis unit 4 performs a process of synthesizing τ=u MPC +u PDs The torque vector τ is obtained by a process equivalent to the above.
[0106] Then, the synthesis unit 4 outputs the obtained torque vector τ to the actuator Rbt_actr of the robot Rbt (at time t 2e MPC output (output 2), equivalent to PD output).
[0107] As a result, the robot Rbt is MPC +u PDs In other words, in the robot control device 100, the torque vector τ (=uMPC +u PDs ), it is possible to cause the robot Rbt to move along a target trajectory (movement that achieves a set goal) while appropriately maintaining the posture of the robot Rbt.
[0108] <Movement generation process (after time t3)> Furthermore, even after time t3, the same processing as that from time t1 to time t2 described above is executed.
[0109] As a result, in the same process as that from time t1 to time t2, the robot control device 100 calculates the torque vector τ (=u MPC +u PDs ) can be used to control the robot Rbt. By performing such processing in such a robot control device 100, it is possible to make the robot Rbt move along a target trajectory (movement that realizes a set goal) while appropriately maintaining the posture of the robot Rbt.
[0110] <Summary> As described above, the robot control device 100 performs hierarchical control, that is, (1) model prediction processing (upper layer control) by the model prediction control unit 2 (processing to calculate movement commands by model prediction processing), and (2) PD control (lower layer control) by the PD control unit 3 (control to maintain the posture of the robot Rbt (control to maintain a balanced state)), thereby allowing the time required to calculate the movement commands to be long and enabling the robot Rbt to perform a variety of movements without causing the robot Rbt to fall over.
[0111] In the robot control device 100, the control input u MPC The update interval is Δt u (For example, Δt u Even during the period when such model prediction processing (complex processing for calculating motion commands for making the robot perform various motions) is being performed, the control input u for performing PD control by the PD control unit 3 is PDs for a short time (e.g., control input uPDs The update interval is Δt low (For example, Δt low =2ms)) to the robot Rbt (short update interval Δt low The control input for PD control, u, is updated by PDs and the control input u acquired by the model prediction control unit 2 in the model prediction process that has already been completed. MPC (=u * k ) and the combined output (torque vector τ(=u MPC +u PDs Therefore, in the robot control device 100, even during the period when the model prediction process (a complex process for calculating a motion command for making the robot perform various motions) is being executed, the control input u for maintaining the equilibrium state of the robot Rbt can be continuously output. PDs is updated at short time intervals, and the updated control input u PDs The torque vector τ(=u MPC +u PDs ) makes it possible to maintain the equilibrium state of the robot Rbt (to appropriately maintain the posture of the robot Rbt). As a result, the robot control device 100 can make the robot Rbt perform a variety of movements without causing the robot Rbt to fall over, while allowing the time required for calculating the movement command to be long.
[0112] Here, the application results (simulation results) of the present invention will be shown.
[0113] The results of applying the present invention to a simplified humanoid model with 18-DoF (Degree of Freedom), one torso, and six links in each leg, are shown below. The control period (the time interval during which the control input u is input) Δt u , number of horizons N (number of time steps to forecast N), time step size for discretization (period of one time step) Δt d , and the control input of the lower layer (PD control) (control input u PDs ) Update period (update interval) Δtlow was set as follows: Δt u =100ms N=50 Δt d =20ms Δt low =2ms The present invention was applied to the following cases (1) to (4). (1) Exercise to be performed by the robot: Standing on tiptoes (state of the robot's legs: barefoot) (2) Exercise to be performed by the robot: Walking (Robot leg condition: Barefoot) (3) Exercise to be performed by the robot: Standing on one leg (position of the robot's legs: wearing roller skates) (4) Exercise to be performed by the robot: Skating (Robot leg condition: wearing roller skates) 3 is a diagram showing the state of the robot in the above cases (1) to (3). In FIG. 3, the horizontal axis is the time axis.
[0114] Fig. 4 is a diagram showing the state of the robot in the above case (4). Note that in Fig. 4, the horizontal axis is the time axis.
[0115] As shown in Figures 3 and 4, in all of the above cases (1) to (4), the robot maintained its posture appropriately (maintained a state of equilibrium at each time step) and was able to perform each motion without falling over. In particular, as shown in Figure 4, even in the case of performing an extremely complicated motion of sliding down a slope with roller skates on the robot's legs, the robot to which the present invention is applied was able to maintain its posture appropriately (maintained a state of equilibrium at each time step) and perform the motion without falling over.
[0116] As can be seen from these results, the present invention makes it possible to execute movements that were considered extremely difficult with conventional technology without causing the robot to fall over (while maintaining the robot's posture appropriately). In other words, it is clear that the usefulness of the present invention is extremely high.
[0117] [Other embodiments] In the above embodiment, it is assumed that the object controlled by the robot control device 100 is a humanoid robot, but this is not limited to this. The object controlled by the robot control device 100 may be a multi-legged robot other than a bipedal robot, or may be a robot other than a humanoid robot.
[0118] Furthermore, in the robot control device 100 described in the above embodiment, each block may be individually implemented as a single chip using a semiconductor device such as an LSI, or some or all of the blocks may be included in a single chip.
[0119] Although we refer to it as LSI here, it may also be called IC, system LSI, super LSI, or ultra LSI depending on the level of integration.
[0120] The method of integration is not limited to LSI, but may be realized by a dedicated circuit or a general-purpose processor. It is also possible to use a field programmable gate array (FPGA) that can be programmed after LSI manufacturing, or a reconfigurable processor that can reconfigure the connections and settings of circuit cells inside the LSI.
[0121] In addition, a part or all of the processing of each functional block in each of the above embodiments may be realized by a program. Then, a part or all of the processing of each functional block in each of the above embodiments is performed by a central processing unit (CPU) in a computer. Also, the programs for performing each processing are stored in a storage device such as a hard disk or a ROM, and are executed in the ROM or by being read into the RAM.
[0122] In addition, each process in the above embodiment may be realized by hardware, or may be realized by software (including the case where it is realized together with an OS (operating system), middleware, or a predetermined library). Furthermore, it may be realized by a mixed process of software and hardware.
[0123] For example, when each functional unit of the above embodiment is realized by software, each functional unit may be realized by software processing using the hardware configuration shown in FIG. 5 (e.g., a hardware configuration in which a CPU (including a GPU), a ROM, a RAM, an input unit, an output unit, etc. are connected via a bus).
[0124] In the description of this specification and the claims, "optimization" (or "optimum") means to bring the system into the best state, and a parameter for "optimizing" a system (model) means a parameter when the value of the objective function of the system is the optimal value. The "optimum value" is a maximum value when the system is in a better state as the value of the objective function of the system increases, and is a minimum value when the system is in a better state as the value of the objective function of the system decreases. The "optimum value" may also be an extreme value. The "optimum value" may also be one that allows for a predetermined error (measurement error, quantization error, etc.), and may be a value included in a predetermined range (a range that can be considered to have converged sufficiently).
[0125] Furthermore, the order of execution of the processing methods in the above embodiments is not necessarily limited to that described in the above embodiments, and the order of execution can be changed without departing from the gist of the invention.
[0126] The scope of the present invention includes a computer program for causing a computer to execute the above-mentioned method and a computer-readable recording medium having the program recorded thereon. Here, examples of the computer-readable recording medium include a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a large-capacity DVD, a next-generation DVD, and a semiconductor memory.
[0127] The computer program is not limited to one recorded on the recording medium, but may be one transmitted via a telecommunications line, a wireless or wired communication line, a network such as the Internet, or the like.
[0128] The specific configuration of the present invention is not limited to the above-described embodiment, and various changes and modifications are possible without departing from the gist of the invention. [Explanation of symbols]
[0129] 100 Robot control device 1 Target generation section 2. Model predictive control section 3 PD control section 31 1st PD control section 32 2nd PD control section 33 Addition section 4. Synthesis section Rbt Robot
Claims
1. A robot control device for controlling a robot to cause the robot to execute a predetermined motion, comprising: a target generator that generates target data for causing the robot to perform a predetermined motion and generates PD control target data that is only data related to data required to maintain an equilibrium state of the robot; a model prediction control unit that performs a model prediction process using a model that complies with dynamic constraints for causing the robot to perform the predetermined motion based on the target data, thereby acquiring a control input for MPC, which is a control input for controlling the robot; a PD control unit that acquires a control input for PD control, which is a control input for maintaining an equilibrium state of the robot, based on the target data for PD control and a state of the robot; a synthesis unit that outputs a control input obtained by synthesizing the control input for MPC and the control input for PD control to a drive device of the robot; Equipped with The model predictive control unit acquires the control input for MPC at a first time interval, The PD control unit acquires the control input for PD control at a second time interval that is a time interval shorter than the first time interval. Robot control device.
2. the model prediction control unit executes a model prediction process for predicting a target trajectory of the robot for N time steps (N: natural number), and performs a process for optimizing a sequence of a state vector representing a state of the robot during the N time steps, a sequence of a local feedback gain, and a sequence of a control input for MPC based on the target data and a current state of the robot, thereby obtaining an optimal state vector sequence, an optimal local feedback gain sequence, and an optimal sequence of a control input for MPC during the N time steps; The PD control unit is a first PD control unit that acquires a control input for PD control regarding model prediction, using a state vector representing a current state of the robot and the optimal state vector sequence and an optimal local feedback gain sequence acquired by the model prediction control unit; a second PD control unit that acquires a control input for PD control for maintaining an equilibrium state of the robot by using a state vector representing a current state of the robot and the target data for PD control; an adder that adds a control input for PD control regarding the model prediction acquired by the first PD control unit and a control input for PD control for maintaining an equilibrium state of the robot acquired by the second PD control unit; Equipped with The robot control device according to claim 1 .
3. 1. A robot control method for controlling a robot to cause the robot to execute a predetermined motion, comprising the steps of: a target generating step of generating target data for causing the robot to perform a predetermined motion and generating PD control target data which is only data related to data required for maintaining an equilibrium state of the robot; a model predictive control step of acquiring a control input for MPC, which is a control input for controlling the robot, by performing a model predictive process using a model that complies with dynamic constraints for making the robot perform the predetermined motion based on the target data; a PD control step of acquiring a control input for PD control, which is a control input for maintaining an equilibrium state of the robot, based on the target data for PD control and a state of the robot; a synthesis step of synthesizing the control input for MPC and the control input for PD control and outputting the synthesized control input to a drive device of the robot; Equipped with The model predictive control step includes acquiring a control input for the MPC at a first time interval; The PD control step acquires the control input for the PD control at a second time interval that is a time interval shorter than the first time interval. A method for controlling a robot.
4. A program for causing a computer to execute the robot control method according to claim 3.
Citation Information
Patent Citations
Digital controller
JP1995078001A
Control device for legged mobile robot
JP2011093027A
ZMP controller for walking robot
JP2012040644A
Electronic control device
JP2015219793A