JP7221833B2 - Nonlinear model predictive controller - Google Patents

Nonlinear model predictive controller Download PDF

Info

Publication number
JP7221833B2
JP7221833B2 JP2019158051A JP2019158051A JP7221833B2 JP 7221833 B2 JP7221833 B2 JP 7221833B2 JP 2019158051 A JP2019158051 A JP 2019158051A JP 2019158051 A JP2019158051 A JP 2019158051A JP 7221833 B2 JP7221833 B2 JP 7221833B2
Authority
JP
Japan
Prior art keywords
control
robot
leg
time
collision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019158051A
Other languages
Japanese (ja)
Other versions
JP2021036390A (en
Inventor
敏之 大塚
想太郎 片山
将弘 土井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyoto University
Toyota Motor Corp
Original Assignee
Kyoto University
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyoto University, Toyota Motor Corp filed Critical Kyoto University
Priority to JP2019158051A priority Critical patent/JP7221833B2/en
Publication of JP2021036390A publication Critical patent/JP2021036390A/en
Application granted granted Critical
Publication of JP7221833B2 publication Critical patent/JP7221833B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Feedback Control In General (AREA)

Description

特許法第30条第2項適用 平成30年8月31日開催の「非線形現象の特徴化に基づく制御理論調査研究会 第5回研究会」にて発表Application of Article 30, Paragraph 2 of the Patent Law Presented at the 5th Study Group of the Research Group on Control Theory Based on Characterization of Nonlinear Phenomena held on August 31, 2018

本発明は、非線形モデル予測制御装置に関する。 The present invention relates to a nonlinear model predictive controller.

二足歩行ロボットのような安定性の低いシステムを制御する際には、未来(有限時間後まで)のシステム挙動を予測しながら制御を行うモデル予測制御(receding horizon control;リシーディングホライゾン制御)を用いることが有効である。モデル予測制御は、制御周期(サンプリング周期)ごとに各時刻から有限時間未来までの最適制御問題を解き、制御入力値を決定するフィードバック制御である。 When controlling a system with low stability, such as a bipedal robot, model predictive control (receding horizon control) is used to perform control while predicting future system behavior (until a finite amount of time). It is effective to use Model predictive control is feedback control that solves an optimum control problem from each time to a finite time future for each control cycle (sampling cycle) to determine a control input value.

フィードバック制御において、二足歩行ロボットは歩行動作等を伴う非線形性の高いシステムであるので、二足歩行ロボットの制御は、非線形モデル予測制御によって行われることが好ましい。 In feedback control, since the bipedal robot is a highly nonlinear system involving walking motions, etc., the control of the bipedal robot is preferably performed by nonlinear model predictive control.

非特許文献1には、周囲物との衝突を前提とした制御対象(例えばロボットの脚の動作)の非線形制御モデル制御装置が開示されている。 Non-Patent Document 1 discloses a non-linear control model controller for a controlled object (for example, motion of a leg of a robot) assuming a collision with a surrounding object.

M. Yamakita, A. Taura, and Y. Onodera、「An application of nonlinear receding horizon control to posture control with collisions」、Proceedings of lnternational Conference on Advanced lntelligent Mechatronics、2005年7月、p.1505-1510M. Yamakita, A. Taura, and Y. Onodera, "An application of nonlinear receding horizon control to posture control with collisions," Proceedings of International Conference on Advanced lntelligent Mechatronics, July 2005, p.1505-1510

しかしながら、周囲物との衝突(例えばロボットの脚の接地)が将来(次の瞬間)のどのタイミングで発生するかを予測しながら制御することは難しい。そのため、非特許文献1に記載の技術では、周囲物との衝突のタイミングを予め設定した仮の時刻として制御を実行している。よって、将来の実際の衝突タイミングに制御結果がより良く合う高精度な非線形モデル予測制御装置が望まれる。 However, it is difficult to control while predicting at what timing in the future (the next moment) a collision with a surrounding object (for example, a leg of the robot touches the ground) will occur. Therefore, in the technique described in Non-Patent Document 1, control is executed with the timing of the collision with the surrounding object set in advance as a provisional time. Therefore, there is a demand for a highly accurate nonlinear model predictive control system whose control results better match actual future collision timings.

本発明は、上述のような実状に鑑みてなされたものであり、周囲物と衝突することを前提とした制御対象に対し、将来の実際の衝突タイミングに制御結果がより良く合う高精度な非線形モデル予測制御装置を提供することを、その目的とする。 The present invention has been made in view of the above-mentioned actual situation. The object is to provide a model predictive controller.

本発明にかかる非線形モデル予測制御装置は、制御対象の非線形制御モデルの最適化問題を演算しながらフィードバック制御を行うことによって、各時刻において将来の制御対象の応答を予測しながら制御対象の制御を行うことが可能に構成された非線形モデル予測制御装置であって、繰り返し周囲物との衝突が発生することを前提とする動作を実行制御されるように構成された制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する予測手段と、周囲物との衝突が発生することを前提とした前記非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて実行する演算手段と、を備える、ものである。 The nonlinear model predictive control device according to the present invention performs feedback control while calculating the optimization problem of the nonlinear control model of the controlled object, thereby controlling the controlled object while predicting the future response of the controlled object at each time. A non-linear model predictive control device configured to be able to perform the following at each time on a controlled object configured to be executed and controlled on the premise that it repeatedly collides with a surrounding object: predicting means for predicting the number of collisions for a predetermined period after the current time, and computing the optimization problem of the non-linear control model on the premise that collisions with surrounding objects will occur, based on the predicted number of collisions. and computing means for executing in response.

本発明は、上述したように、各時刻において所定期間後までに制御対象が衝突する回数を予測し、その予測した衝突回数に応じて非線形制御モデルの最適化問題を演算している。したがって、本発明にかかる非線形モデル予測制御装置によれば、将来の実際の衝突タイミングに制御結果がより良く合う高精度な予測制御を実行することができる。 As described above, the present invention predicts the number of collisions of the controlled object within a predetermined period of time at each time, and calculates the optimization problem of the nonlinear control model according to the predicted number of collisions. Therefore, according to the nonlinear model predictive control device according to the present invention, highly accurate predictive control can be executed in which the control result better matches the actual collision timing in the future.

本発明によれば、周囲物と衝突することを前提とした制御対象に対し、将来の実際の衝突タイミングに制御結果がより良く合う高精度な非線形モデル予測制御装置を提供できる。 According to the present invention, it is possible to provide a highly accurate non-linear model predictive control device in which the control result better matches the future actual collision timing for a controlled object that is assumed to collide with a surrounding object.

実施の形態1にかかるロボットシステムを示す概略図である。1 is a schematic diagram showing a robot system according to a first embodiment; FIG. 実施の形態1にかかるロボットシステムの構成を示す機能ブロック図である。1 is a functional block diagram showing the configuration of a robot system according to Embodiment 1; FIG. 実施の形態1にかかるロボットをコンパス型モデルに適用する方法を説明するための図である。FIG. 4 is a diagram for explaining a method of applying the robot according to the first embodiment to a compass model; 実施の形態1にかかるコンパス型ロボットを示す模式図である。1 is a schematic diagram showing a compass-type robot according to a first embodiment; FIG. 図4のコンパス型ロボットにおける片脚支持期と両脚支持期の2つの状態を示す模式図である。FIG. 5 is a schematic diagram showing two states of the compass robot of FIG. 4 , a single-leg support period and a double-leg support period; 実施の形態1にかかるモデルを示す図である。1 is a diagram showing a model according to Embodiment 1; FIG. 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。FIG. 5 is a diagram showing a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。FIG. 5 is a diagram showing a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。FIG. 5 is a diagram showing a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。FIG. 5 is a diagram showing a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。FIG. 5 is a diagram showing a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。FIG. 5 is a diagram showing a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果の、ホライゾン上での予測衝突時刻のグラフを示す図である。FIG. 10 is a graph showing predicted collision times on the horizon as a result of simulating walking control of a compass model as an example of nonlinear model predictive control according to the first embodiment; 図13の一部を拡大したグラフを示す図である。It is a figure which shows the graph which expanded a part of FIG.

以下、図面を参照して本発明の実施の形態について説明する。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described with reference to the drawings. In each drawing, the same elements are denoted by the same reference numerals, and redundant description is omitted as necessary.

<実施の形態1>
図1は、実施の形態1にかかるロボットシステム1を示す概略図である。また、図2は、実施の形態1にかかるロボットシステム1の構成を示す機能ブロック図である。ロボットシステム1は、ロボット100と、ロボットの動作を制御する制御装置2とを有する。
<Embodiment 1>
FIG. 1 is a schematic diagram showing a robot system 1 according to a first embodiment. Also, FIG. 2 is a functional block diagram showing the configuration of the robot system 1 according to the first embodiment. The robot system 1 has a robot 100 and a controller 2 that controls the motion of the robot.

ロボット100は、胴体102と、2つの脚である右脚110R及び左脚110Lとを有する。ロボット100は、2つの脚(右脚110R及び左脚110L)を用いて歩行動作を行うことが可能な二足歩行ロボットである。右脚110R及び左脚110Lは、ロボット100の胴体102の下部に設けられている。ここで、図1に示すように、ロボット100の前方向をX軸方向、上方向をY軸方向とする。また、以下、右脚110Rに関する構成要素の符号に「R」を付し、左脚110Lに関する構成要素の符号に「L」を付すが、それぞれの構成要素について左右を区別しない場合には、「R」及び「L」は、適宜、省略され得る。 The robot 100 has a torso 102 and two legs, a right leg 110R and a left leg 110L. The robot 100 is a bipedal robot capable of walking using two legs (a right leg 110R and a left leg 110L). The right leg 110R and the left leg 110L are provided below the body 102 of the robot 100. As shown in FIG. Here, as shown in FIG. 1, the forward direction of the robot 100 is the X-axis direction, and the upward direction is the Y-axis direction. Further, hereinafter, "R" is attached to the reference numerals of the components relating to the right leg 110R, and "L" is attached to the reference numerals of the components relating to the left leg 110L. R" and "L" may be omitted as appropriate.

右脚110Rは、胴体102に近い方から順に、股関節部120Rと、上腿部112Rと、膝関節部122Rと、下腿部114Rと、足首関節部124Rと、足部116Rとを有する。同様に、左脚110Lは、胴体102に近い方から順に、股関節部120Lと、上腿部112Lと、膝関節部122Lと、下腿部114Lと、足首関節部124Lと、足部116Lとを有する。足部116R及び足部116Lの底部には、それぞれ足裏センサ118が設けられている。足裏センサ118は、足部116の底部に加わる荷重を検出する。 The right leg 110R has a hip joint 120R, an upper leg 112R, a knee joint 122R, a lower leg 114R, an ankle joint 124R, and a foot 116R in this order from the body 102 side. Similarly, the left leg 110L includes a hip joint 120L, an upper leg 112L, a knee joint 122L, a lower leg 114L, an ankle joint 124L, and a foot 116L in this order from the body 102. have. A sole sensor 118 is provided at each of the bottoms of the foot portion 116R and the foot portion 116L. The sole sensor 118 detects the load applied to the bottom of the foot 116 .

股関節部120R及び股関節部120Lは、胴体102の下部に取り付けられている。そして、股関節部120R及び股関節部120Lを介して、それぞれ、上腿部112R及び上腿部112Lが胴体102と接続されている。言い換えると、右脚110R及び左脚110Lは、それぞれ、股関節部120R及び股関節部120Lを介して、胴体102と接続されている。 The hip joint portion 120R and the hip joint portion 120L are attached to the lower portion of the body 102. As shown in FIG. Upper thighs 112R and 112L are connected to body 102 via hip joints 120R and 120L, respectively. In other words, the right leg 110R and the left leg 110L are connected to the trunk 102 via the hip joint 120R and the hip joint 120L, respectively.

また、膝関節部122Rを介して、上腿部112Rと下腿部114Rとが接続されている。同様に、膝関節部122Lを介して、上腿部112Lと下腿部114Lとが接続されている。また、足首関節部124Rを介して、下腿部114Rと足部116Rとが接続されている。同様に、足首関節部124Lを介して、下腿部114Lと足部116Lとが接続されている。 Also, the upper leg 112R and the lower leg 114R are connected via the knee joint 122R. Similarly, the upper leg 112L and the lower leg 114L are connected via the knee joint 122L. Also, the lower leg portion 114R and the foot portion 116R are connected via the ankle joint portion 124R. Similarly, the lower leg portion 114L and the foot portion 116L are connected via the ankle joint portion 124L.

股関節部120は、XY平面に垂直な軸(つまりロボット100の横方向に水平な軸)の周りに回転する。これにより、右脚110R及び左脚110Lは、前後に動作し得る。したがって、ロボット100は、右脚110R及び左脚110Lを交互に前に出すことにより歩行動作を行うことができる。 The hip joint 120 rotates around an axis perpendicular to the XY plane (that is, an axis horizontal to the lateral direction of the robot 100). This allows the right leg 110R and the left leg 110L to move forward and backward. Therefore, the robot 100 can perform a walking motion by alternately extending the right leg 110R and the left leg 110L forward.

膝関節部122は、XY平面に垂直な軸の周りに回転する。これにより、右脚110R及び左脚110Lは、膝関節部122で屈曲動作を行うことができる。また、足首関節部124は、XY平面に垂直な軸の周りに回転する。これにより、足部116は、下腿部114に対して上下に動作し得る。 The knee joint part 122 rotates around an axis perpendicular to the XY plane. As a result, the right leg 110R and the left leg 110L can bend at the knee joint portion 122. FIG. Also, the ankle joint part 124 rotates around an axis perpendicular to the XY plane. This allows the foot portion 116 to move up and down with respect to the lower leg portion 114 .

図2に示すように、ロボット100の各関節部(股関節部120、膝関節部122及び足首関節部124)は、角度センサ130と、モータ140とを有する。角度センサ130は、例えばエンコーダであって、各関節部の関節角度を検出する。モータ140は、各関節部を動作させる、アクチュエータとしての機能を有する。また、各関節部は、各関節部のモータ140のトルクを検出するトルクセンサ136を有してもよい。また、ロボット100の周囲の状態を検出するためのカメラが、胴体102に内蔵されていてもよい。 As shown in FIG. 2 , each joint (hip joint 120 , knee joint 122 and ankle joint 124 ) of the robot 100 has an angle sensor 130 and a motor 140 . The angle sensor 130 is an encoder, for example, and detects the joint angle of each joint. The motor 140 functions as an actuator that operates each joint. Each joint may also have a torque sensor 136 that detects the torque of the motor 140 of each joint. Also, a camera for detecting the surrounding conditions of the robot 100 may be built into the body 102 .

制御装置2は、例えばコンピュータとしての機能を有する。制御装置2は、ロボット100の内部(例えば胴体102)に搭載されてもよい。また、制御装置2は、ロボット100と物理的に離れていてもよく、その場合、ロボット100と有線又は無線を介して通信可能に接続されてもよい。制御装置2は、ロボット100の動作、特に、右脚110R及び左脚110Lの動作を制御する。さらに具体的には、制御装置2は、各関節部のモータのトルクを制御することで、右脚110R及び左脚110Lの姿勢を制御する。つまり、ロボットシステム1において、制御装置2はマスタ装置としての機能を有し、ロボット100はスレーブ装置としての機能を有する。 The control device 2 has a function as a computer, for example. The control device 2 may be mounted inside the robot 100 (for example, the body 102). Also, the control device 2 may be physically separated from the robot 100, and in that case, may be connected to the robot 100 via a wire or wirelessly so as to be communicable. The control device 2 controls the movements of the robot 100, particularly the movements of the right leg 110R and the left leg 110L. More specifically, the control device 2 controls the postures of the right leg 110R and the left leg 110L by controlling the torque of the motors of each joint. That is, in the robot system 1, the control device 2 functions as a master device, and the robot 100 functions as a slave device.

制御装置2は、主要なハードウェア構成として、CPU(Central Processing Unit)4と、ROM(Read Only Memory)6と、RAM(Random Access Memory)8とを有する。CPU4は、制御処理及び演算処理等を行う演算装置としての機能を有する。ROM6は、CPU4によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。RAM8は、処理データ等を一時的に記憶するための機能を有する。 The control device 2 has a CPU (Central Processing Unit) 4, a ROM (Read Only Memory) 6, and a RAM (Random Access Memory) 8 as main hardware components. The CPU 4 functions as an arithmetic device that performs control processing, arithmetic processing, and the like. The ROM 6 has a function of storing control programs, arithmetic programs and the like executed by the CPU 4 . The RAM 8 has a function of temporarily storing processing data and the like.

また、制御装置2は、状態取得部12、非線形モデル予測制御部14、及びサーボ制御部16(以下、「各構成要素」と称する)を有する。各構成要素は、例えば、CPU4がROM6に記憶されたプログラムを実行することによって実現可能である。また、各構成要素は、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールするようにして、実現するようにしてもよい。なお、各構成要素は、上記のようにソフトウェアによって実現されることに限定されず、何らかの回路素子等のハードウェアによって実現されてもよい。 The control device 2 also has a state acquisition unit 12, a nonlinear model predictive control unit 14, and a servo control unit 16 (hereinafter referred to as "components"). Each component can be implemented by executing a program stored in the ROM 6 by the CPU 4, for example. Moreover, each component may be realized by recording necessary programs in any non-volatile recording medium and installing them as necessary. Note that each component is not limited to being implemented by software as described above, and may be implemented by hardware such as some circuit element.

状態取得部12は、ロボット100の現在の歩行に関する状態を示すデータ(状態パラメータ)を取得する、状態取得手段としての機能を有する。状態取得部12は、各センサ(角度センサ130、足裏センサ118及びトルクセンサ136)から、各センサの検出値を取得する。そして、状態取得部12は、取得された検出値(及び検出値から得られた値)を非線形モデル予測制御部14に対して出力する。なお、「検出値から得られた値」とは、例えば、「検出値」が角度センサ130から検出された関節角度である場合、関節角度の速度(変化量,時間微分)であってもよい。この場合、状態パラメータは、関節角度及び関節角度の速度を示してもよい。 The state acquisition unit 12 functions as state acquisition means for acquiring data (state parameters) indicating the current walking state of the robot 100 . The state acquisition unit 12 acquires detection values of each sensor (the angle sensor 130, the sole sensor 118, and the torque sensor 136). The state acquisition unit 12 then outputs the acquired detection value (and the value obtained from the detection value) to the nonlinear model predictive control unit 14 . It should be noted that the "value obtained from the detected value" may be, for example, the speed of the joint angle (amount of change, time differentiation) when the "detected value" is the joint angle detected by the angle sensor 130. . In this case, the state parameter may indicate the joint angle and the velocity of the joint angle.

非線形モデル予測制御部14は、本実施の形態にかかる非線形モデル予測制御装置に相当する部位である。非線形モデル予測制御部14は、ロボット100の動作を制御するための制御入力値(入力値)を算出する算出手段としての機能を有する。非線形モデル予測制御部14は、状態取得部12からの検出値(及び検出値から得られた値)の少なくとも一部を状態パラメータとして入力することができる。非線形モデル予測制御部14は、その状態パラメータに基づいて、モデル予測制御のアルゴリズムを使用してロボット100の動作を制御するための制御入力値を算出する。また、非線形モデル予測制御部14は、算出された制御入力値をサーボ制御部16に対して出力する。 The nonlinear model predictive control unit 14 is a part corresponding to the nonlinear model predictive control device according to this embodiment. The nonlinear model predictive control unit 14 has a function as calculation means for calculating a control input value (input value) for controlling the motion of the robot 100 . The nonlinear model predictive control unit 14 can input at least part of the detection values (and values obtained from the detection values) from the state acquisition unit 12 as state parameters. The non-linear model predictive control unit 14 calculates a control input value for controlling the motion of the robot 100 using a model predictive control algorithm based on the state parameters. The nonlinear model predictive control unit 14 also outputs the calculated control input value to the servo control unit 16 .

非線形モデル予測制御部14は、その状態パラメータに基づいて、非線形モデル予測制御(モデル予測制御)のアルゴリズムを使用して制御対象の動作を制御するための制御入力値を算出し、サーボ制御部16に出力する。非線形モデル予測制御についての詳細は後述する。また、非線形モデル予測制御部14は、ロボットシステム1の外部の上位コントローラ(図示せず)によって、必要な指示値(歩幅、歩行周期等)を入力されてもよい。なお、制御対象がロボット以外のものであった場合でも、出力先が制御対象の部位になるだけで基本的に同様である。 Based on the state parameters, the nonlinear model predictive control unit 14 uses a nonlinear model predictive control (model predictive control) algorithm to calculate a control input value for controlling the operation of the controlled object, and the servo control unit 16 output to Details of the nonlinear model predictive control will be described later. Further, the nonlinear model predictive control unit 14 may receive necessary instruction values (step length, walking cycle, etc.) from an external host controller (not shown) of the robot system 1 . It should be noted that even if the controlled object is something other than a robot, the output destination is basically the same as that of the controlled object part.

サーボ制御部16は、非線形モデル予測制御部14によって算出された制御入力値を用いてロボット100の動作を制御する制御手段としての機能を有する。サーボ制御部16は、算出された制御入力値となるように、ロボット100の各関節部を制御する。また、サーボ制御部16は、サーボアンプの機能を有してもよい。また、サーボ制御部16は、トルク制御を行う場合、各関節部のトルク(関節トルク)が算出された制御入力値となるように、各関節のモータ140を制御する。このとき、サーボ制御部16は、各関節部のトルクセンサ136によって検出されたトルク値を用いてフィードバック制御を行ってもよい。 The servo control unit 16 functions as control means for controlling the motion of the robot 100 using the control input values calculated by the nonlinear model predictive control unit 14 . The servo control unit 16 controls each joint of the robot 100 so as to obtain the calculated control input value. Also, the servo control unit 16 may have a function of a servo amplifier. Further, when performing torque control, the servo control unit 16 controls the motor 140 of each joint so that the torque of each joint (joint torque) becomes the calculated control input value. At this time, the servo control section 16 may perform feedback control using the torque values detected by the torque sensors 136 of the joints.

次に、本実施の形態にかかる非線形モデル予測制御について説明する。
非線形モデル予測制御とは、非線形システムに対し、各サンプリング時刻で有限時刻未来までの最適入力(制御入力値の最適解)を求め、得られた入力のうち初期値を実際の入力とする制御である。換言すれば、非線形モデル予測制御部14は、制御対象の非線形制御モデルの最適化問題を演算しながらフィードバック制御を行うことによって、各時刻において将来の制御対象の応答を予測しながら制御対象の制御を行うことが可能に構成されている。非線形モデル予測制御には、非線形最適制御である、フィードバック制御である、及び、拘束条件を組み込み易いという、3つの利点がある。
Next, the nonlinear model predictive control according to this embodiment will be explained.
Non-linear model predictive control is control that determines the optimal input (optimal solution of control input value) for a non-linear system up to a finite time in the future at each sampling time, and uses the initial value of the obtained input as the actual input. be. In other words, the nonlinear model predictive control unit 14 controls the controlled object while predicting the future response of the controlled object at each time by performing feedback control while calculating the optimization problem of the nonlinear control model of the controlled object. It is configured to be able to perform Nonlinear model predictive control has three advantages: it is nonlinear optimal control, it is feedback control, and it is easy to incorporate constraint conditions.

このように、非線形モデル予測制御は、フィードバック制御であるため外乱に対して強く、拘束条件も多様に組み合わせることができる。このような特徴があるため、非線形モデル予測制御は、多くのシステムへの導入が期待されている。しかしながら、ニュートン法などの従来の反復法では、サンプリング周期内で最適解に収束させることは困難であった。 In this way, since the nonlinear model predictive control is feedback control, it is resistant to disturbances and can be combined with various constraint conditions. Because of these characteristics, nonlinear model predictive control is expected to be introduced to many systems. However, conventional iterative methods such as Newton's method have difficulty converging to the optimum solution within the sampling period.

近年、この問題に対する有効な数値計算法として、C/GMRES(continuation/generalized minimum residual method)法が新たに考案された。C/GMRES法は、連続変形法(continuation method)とGMRES法とを組み合わせたアルゴリズムである。C/GMRES法は、状態変化が連続であるシステムに対し、最適解の連続性を利用して、最適解の変化率を求めながら最適解を追跡していく計算方法である。このC/GMRES法を用いることにより、非線形モデル予測制御においても、実時間(リアルタイム)でシステムを制御することが可能となる。つまり、C/GMRES法を用いることで有限時刻未来までの最適制御問題をサンプリング周期内で解くことが可能になった。本実施の形態においても、C/GMRES法での計算を適用することができる。なお、C/GMRES法については後述する。 In recent years, a new C/GMRES (continuation/generalized minimum residual method) method has been devised as an effective numerical calculation method for this problem. The C/GMRES method is an algorithm that combines the continuation method and the GMRES method. The C/GMRES method is a calculation method for tracking the optimum solution while obtaining the change rate of the optimum solution by utilizing the continuity of the optimum solution for a system in which state changes are continuous. By using this C/GMRES method, it is possible to control the system in real time even in nonlinear model predictive control. That is, by using the C/GMRES method, it has become possible to solve the optimal control problem up to a finite future time within the sampling period. Also in this embodiment, the calculation by the C/GMRES method can be applied. Note that the C/GMRES method will be described later.

そして、本実施の形態にかかる非線形モデル予測制御部14は、その主たる特徴として、次の予測手段及び演算手段を備える。この予測手段は、繰り返し周囲物との衝突(周囲環境との接触等)が発生することを前提とする動作(例えば歩行)を実行制御されるように構成された制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する。この予測手段は、衝突回数予測手段と称することもできる。 The nonlinear model predictive control unit 14 according to the present embodiment has the following prediction means and calculation means as its main features. This prediction means is configured to execute and control an action (for example, walking) on the premise that collisions with surrounding objects (contact with the surrounding environment, etc.) occur repeatedly. , predicts the number of collisions from the time to a predetermined period later. This prediction means can also be called collision frequency prediction means.

上記の演算手段は、周囲物との衝突が起こり得ることを前提とした非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて(予測した衝突回数ごとに区別して)実行する。以下、このような非線形モデル予測制御部14における制御例について説明する。 The calculation means executes calculations of optimization problems of the nonlinear control model on the premise that collisions with surrounding objects may occur, according to the predicted number of collisions (separately for each predicted number of collisions). An example of control in such a nonlinear model predictive control unit 14 will be described below.

[制御対象と制御目的]
次に、上述した非線形モデル予測制御を、本実施の形態にかかるロボット100の動作の制御に適用した例について説明する。なお、実施の形態1においては、制御対象としてのロボット100がコンパス型モデルである例について説明するが、非線形モデル予測制御は、ロボット100がコンパス型モデルでなくても適用可能である。
[Control object and control purpose]
Next, an example in which the nonlinear model predictive control described above is applied to control the motion of the robot 100 according to the present embodiment will be described. In Embodiment 1, an example in which robot 100 as a control object is a compass model will be described, but non-linear model predictive control can be applied even if robot 100 is not a compass model.

なお、ロボット100の歩行動作は、地面に着いていない脚である遊脚が地面と衝突する(着地する)という動作を含む。この衝突の前後で、ロボット100の一般化速度が不連続に変化する。つまり、このとき、状態ジャンプが発生する。また、一般的に、歩行動作は、周期的な運動である。したがって、ロボット100を、予め定められた周期ごとに状態ジャンプを生じさせる(つまり遊脚を着地させる)ように制御を行うことが可能である。なお、「着地」とは、遊脚が地面と衝突(接触)することに限定されない。つまり、「着地」とは、ロボット100がその上を歩行している面(歩行面)に遊脚が接触することを意味する。 Note that the walking motion of the robot 100 includes a motion in which the free leg, which is a leg that is not on the ground, collides with (lands on) the ground. Before and after this collision, the generalized speed of the robot 100 changes discontinuously. That is, at this time, a state jump occurs. In general, walking motion is periodic motion. Therefore, it is possible to control the robot 100 to cause a state jump (that is, to land the free leg) at each predetermined cycle. Note that "landing" is not limited to collision (contact) of the free leg with the ground. In other words, "landing" means that the free leg comes into contact with the surface (walking surface) on which the robot 100 is walking.

図3は、実施の形態1にかかるロボット100をコンパス型モデルに適用する方法を説明するための図である。図3に示した例では、右脚110Rが片脚で支持している期間に地面90に着いている脚支持脚であり、左脚110Lが遊脚(振り脚)である。制御装置2は、支持脚が地面と点接触していることを模擬するため、支持脚(図3の例では右脚110R)の足首関節部124に設けられたトルクセンサ136を用いて、支持脚の足首関節部124のトルクを0に制御する。また、制御装置2は、右脚110R及び左脚110Lの膝関節部122を、伸展状態でロックするように制御する。つまり、制御装置2は、右脚110R及び左脚110Lの膝関節部122の関節角度が伸展状態に対応する角度(例えば0)となるように、膝関節部122のモータ140を制御する。さらに、制御装置2は、遊脚(図3の例では左脚110L)の足裏センサ118を用いて、遊脚の着地を検出する。このようにして、ロボットシステム1は、コンパス型モデルを模擬することができる。 FIG. 3 is a diagram for explaining a method of applying the robot 100 according to the first embodiment to a compass model. In the example shown in FIG. 3, the right leg 110R is the leg supporting leg that is in contact with the ground 90 while being supported by one leg, and the left leg 110L is the free leg (swing leg). In order to simulate that the supporting leg is in point contact with the ground, the control device 2 uses the torque sensor 136 provided at the ankle joint portion 124 of the supporting leg (the right leg 110R in the example of FIG. 3) to The torque of the leg ankle joint 124 is controlled to zero. The control device 2 also controls the knee joints 122 of the right leg 110R and the left leg 110L to be locked in the extended state. That is, the control device 2 controls the motors 140 of the knee joints 122 so that the joint angles of the knee joints 122 of the right leg 110R and the left leg 110L are the angles corresponding to the extended state (for example, 0). Further, the control device 2 uses the sole sensor 118 of the free leg (the left leg 110L in the example of FIG. 3) to detect the landing of the free leg. Thus, the robot system 1 can simulate a compass model.

図4は、実施の形態1にかかるロボット100をコンパス型モデルに適用した例を説明するための図で、コンパス型ロボットを示す模式図である。図4で例示するロボット(2足歩行ロボット)100は、関節150と、支持脚リンク151と、遊脚リンク152とから構成されるコンパス型モデルにモデル化されている。ここで、関節150は、胴体102及び股関節部120に対応する。また、支持脚リンク151は、右脚110R及び左脚110Lのうちの支持脚に対応する。また、遊脚リンク152は、右脚110R及び左脚110Lのうちの遊脚に対応する。 FIG. 4 is a diagram for explaining an example in which the robot 100 according to the first embodiment is applied to a compass-type model, and is a schematic diagram showing the compass-type robot. A robot (biped walking robot) 100 exemplified in FIG. 4 is modeled as a compass model including joints 150 , supporting leg links 151 and free leg links 152 . Here, joint 150 corresponds to body 102 and hip joint 120 . Also, the supporting leg link 151 corresponds to the supporting leg of the right leg 110R and the left leg 110L. Also, the free leg link 152 corresponds to the free leg of the right leg 110R and the left leg 110L.

関節150の質量をm0とする。また、図4の矢印で示すように、関節150の周りに、制御入力値として入力トルクuが入力される。ここで、支持脚リンク151及び遊脚リンク152の物理的性質は、互いに同じであるとする。支持脚リンク151及び遊脚リンク152の長さを、lとする。また、支持脚リンク151及び遊脚リンク152の質量を、mとする。関節150から各リンクの重心(重心151m及び重心152m)までの長さを、dとする。支持脚リンク151及び遊脚リンク152の重心(重心151m及び重心152m)周りの慣性モーメントを、Iとする。 Assume that the mass of the joint 150 is m0. Also, as indicated by the arrow in FIG. 4, an input torque u is input around the joint 150 as a control input value. Here, it is assumed that the supporting leg link 151 and the swing leg link 152 have the same physical properties. Let l be the length of the support leg link 151 and the swing leg link 152 . Also, the mass of the supporting leg link 151 and the free leg link 152 is m. Let d be the length from the joint 150 to the center of gravity of each link (center of gravity 151 m and center of gravity 152 m). Let I be the moment of inertia around the center of gravity of the support leg link 151 and the free leg link 152 (the center of gravity 151m and the center of gravity 152m).

また、鉛直方向に対する支持脚リンク151の角度をθ1とし、鉛直方向に対する遊脚リンク152の角度をθ2とする。但し、図4において時計回り(各リンクの下端を中心に関節150が前方に回る方向)を正とする。したがって、図4の状態では、θ2<0である。 The angle of the supporting leg link 151 with respect to the vertical direction is θ1, and the angle of the free leg link 152 with respect to the vertical direction is θ2. However, in FIG. 4, the clockwise direction (the direction in which the joint 150 rotates forward about the lower end of each link) is positive. Therefore, in the state of FIG. 4, θ2<0.

非線形モデル予測制御部14は、図1のロボット100で例示でき且つ図4で表されるような2足歩行ロボット100を最も単純化したモデル(コンパス型モデル)に対し、制御を行うことになる。この制御は、非線形モデル予測制御を用いた実時間での動的歩行制御である。 The non-linear model predictive control unit 14 controls the most simplified model (compass model) of the bipedal robot 100, which can be exemplified by the robot 100 in FIG. 1 and is represented in FIG. . This control is real-time dynamic walking control using nonlinear model predictive control.

図5は、コンパス型ロボットの片脚支持期と両脚支持期の2つの状態を示す模式図である。図4に示すロボット100の運動では、図5に示すロボット100-1,100-2のようにロボットが2つの状態をとる。ロボット100-1で示す1つの状態は、片脚が地面90に着きもう一方の脚が地面90から離れている状態(片脚支持期)である。ロボット100-2で示すもう1つの状態は、両脚が地面90に着いている状態(両脚支持期)である。以下では、このような片脚支持期に地面90に着いている脚を支持脚、その片脚支持期に地面90に着いていない脚を遊脚と称する。 FIG. 5 is a schematic diagram showing two states of the compass robot, one-leg support period and two-leg support period. In the motion of the robot 100 shown in FIG. 4, the robot takes two states like the robots 100-1 and 100-2 shown in FIG. One state illustrated by robot 100-1 is when one leg is on the ground 90 and the other leg is off the ground 90 (single leg support phase). Another state shown by robot 100-2 is a state in which both legs are on the ground 90 (both legs support phase). Hereinafter, the leg that is in contact with the ground 90 during the one-leg support period will be referred to as the supporting leg, and the leg that is not in contact with the ground 90 during the one-leg support period will be referred to as the free leg.

また、歩行動作について次の4つの仮定を置く。
・遊脚と地面90との衝突は完全非弾性衝突とする。すなわち、地面90と衝突した脚が跳ね返ることはない。
・衝突の直後に、それまで支持脚だった脚は相互作用無しで地面90から離れる。
・遊脚と地面90との衝突は一瞬とする。すなわち、両脚支持期は一瞬とする。
・衝突の撃力によりロボットの速度は瞬間的に変わるが、座標は瞬間的には変わらないとものする。
Moreover, the following four assumptions are made about walking motion.
- The collision between the free leg and the ground 90 is assumed to be a completely inelastic collision. That is, the leg that collides with the ground 90 does not rebound.
• Immediately after impact, the previously supporting leg leaves the ground 90 without interaction.
・The collision between the free leg and the ground 90 is instantaneous. That is, the two-leg support period is assumed to be instantaneous.
・It is assumed that the speed of the robot changes instantaneously due to the impact force of the collision, but the coordinates do not change instantaneously.

これらの仮定により、ロボットの歩行動作におけるダイナミクスは、片脚支持期の運動という連続変化、遊脚と地面90との衝突という不連続変化、という2つの事象に分けることができる。次に、これらの仮定に基づき、2つの方程式を導出する。 Based on these assumptions, the dynamics of the walking motion of the robot can be divided into two phenomena: a continuous change of movement during the one-leg support period, and a discontinuous change of collision between the free leg and the ground 90 . We then derive two equations based on these assumptions.

まず片脚支持期の運動方程式は、一般化座標qを

Figure 0007221833000001
ととると、ラグランジュの運動方程式が、
Figure 0007221833000002
と得られる。 First, the equation of motion in the single-leg support phase is the generalized coordinate q as
Figure 0007221833000001
Then, Lagrange's equation of motion is
Figure 0007221833000002
is obtained.

ここで、τ(u)はジョイント部に対する制御入カトルク、M(q)は慣性行列、H(q,q(ドット))は重力とコリオリの力を表す項であり、それぞれ次のような運動方程式で示される通りである。

Figure 0007221833000003
Here, τ(u) is the control input torque to the joint, M(q) is the inertia matrix, H(q, q(dot)) is the term representing the force of gravity and the Coriolis force. As shown in the equation.
Figure 0007221833000003

これより、ロボットの運動方程式及び状態空間ベクトルxを

Figure 0007221833000004
とすると、制御に用いるための状態方程式が
Figure 0007221833000005
と得られる。 From this, the equation of motion of the robot and the state space vector x are
Figure 0007221833000004
Then the state equation for control is
Figure 0007221833000005
is obtained.

なお、ここで説明するコンパス型モデルでは、歩行の拘束条件として、ZMP(zero moment point)は考慮されないものとする。 In the compass model described here, ZMP (zero moment point) is not taken into consideration as a constraint condition for walking.

次に、衝突の式を導出する。簡単のため、本実施の形態では衝突後にθ=θという座標の取り直しを行う(但しこの際物理的な意味は一切不変である)。衝突の際に物理的な座標は変わらないという仮定から、衝突直前の座標をq=[θ θ Τ、直後の座標をq=[θ θ Τと置き、正方行列を次式のI(バー)で置く。

Figure 0007221833000006
Next, we derive the collision formula. For the sake of simplicity, in this embodiment, the coordinates are recalculated as θ 12 after the collision (however, the physical meaning does not change at all). Based on the assumption that the physical coordinates do not change upon collision, the coordinates immediately before the collision are q = [θ 1 θ 2 ] T , and the coordinates immediately after the collision are q + = [θ 1 + θ 2 + ] T. and put the square matrix by I(bar) in the following equation.
Figure 0007221833000006

すると、次式が成り立つ。

Figure 0007221833000007
Then, the following formula holds.
Figure 0007221833000007

それぞれ次式で表される衝突直前の速度、衝突直後の速度

Figure 0007221833000008
については、遊脚についての角運動量保存則から次式が成り立つ。 The speed immediately before collision and the speed immediately after collision are expressed by the following equations, respectively.
Figure 0007221833000008
, the following equation holds from the law of conservation of angular momentum for the swing leg.

Figure 0007221833000009
Figure 0007221833000009

但し、Q、Qは下式で示す通りである。

Figure 0007221833000010
However, Q and Q + are as shown in the following formulas.
Figure 0007221833000010

以上により、衝突前後のコンパス型ロボットの状態の変化は、衝突直前と直後の座標x、xを用いて

Figure 0007221833000011
と表すことができる。また、衝突が起きる条件としては遊脚の先端の地面90からの高さが0になること、すなわち
ψ(x)=l(cosθ-cosθ)=0 ・・・(A14)
である。 From the above, the change in the state of the compass robot before and after the collision can be calculated using the coordinates x and x + immediately before and after the collision
Figure 0007221833000011
It can be expressed as. Also, as a condition for collision to occur, the height of the tip of the free leg from the ground 90 should be 0, that is, ψ(x)=l(cos θ 1 -cos θ 2 )=0 (A14).
is.

上述の説明から分かるように、本実施の形態で例示するコンパス型歩行モデルは、図6で表されるような一般的なモデルで表すことができる。但し、f(x(t),u(t))はk歩目の時のコンパス型モデルの状態方程式、ψ(x)はk歩目の衝突の条件、γ(x)はk歩目の衝突による状態の不連続変化を表す。また、このモデルは歩行以外にもロボット等が外界との接触を行うモデル全般を表すことができる。 As can be seen from the above description, the compass-type walking model exemplified in the present embodiment can be represented by a general model as shown in FIG. where f k (x(t), u(t)) is the state equation of the compass model at the k-th step, ψ k (x) is the condition for the k-th step collision, and γ k (x) is k Represents a discontinuous change in state due to a step collision. In addition, this model can represent general models in which a robot or the like makes contact with the outside world in addition to walking.

[非線形モデル予測制御とC/GMRES法による実時間制御アルゴリズム]
次に、このように一般化したモデルに対して非線形モデル予測制御を適用する際の最適制御問題の定式化を予測ホライゾン上の衝突の回数ごとに導出するとともに、この非線形モデル予測制御を実時間で実行する実時間制御アルゴリズムについて説明する。
[Non-linear model predictive control and real-time control algorithm by C/GMRES method]
Next, we derive the formulation of the optimal control problem when applying nonlinear model predictive control to such a generalized model for each number of collisions on the prediction horizon. A real-time control algorithm executed in .

ここでは、図6で示した歩行動作を一般化したモデルに対して非線形モデル予測制御を適用する手法を説明する。非線形モデル予測制御(Nonlinear model predictive control;以下NMPC)は、制御対象システムのモデルと、システムの現時刻tの状態に基づき制御される。ここでのモデルは、本実施の形態で言えば状態方程式x(ドット)=fk(x,u)と衝突の式x+=γk(x-)となる。具体的には、NMPCは、上記モデルと現時刻tの状態に基づき、現時刻tから未来t+Tまでのシステムの挙動が最適になるような制御入力uOPT(τ)(t≦τ≦t+Τ)を求める制御則である。また、NMPCは、実際のシステムへの制御入力u(t)を、得られた最適制御入力の初期値、すなわちu(t)=uopt(τ)として与える制御則である。 Here, a method of applying non-linear model predictive control to the generalized model of the walking motion shown in FIG. 6 will be described. Nonlinear model predictive control (hereinafter referred to as NMPC) is controlled based on a model of the system to be controlled and the state of the system at the current time t. In this embodiment, the model is the state equation x(dot)=fk(x, u) and the collision equation x+=γk(x−). Specifically, based on the above model and the state at current time t, NMPC selects the control input uOPT(τ) (t≤τ≤t+T) that optimizes the behavior of the system from current time t to future t+T. This is the desired control law. NMPC is a control law that gives the control input u(t) to the actual system as the initial value of the obtained optimal control input, that is, u(t)=uopt(τ).

*最適性条件の導出*
ここで、システムが衝突のような不連続現象を含む際は、それに応じた最適性条件を導出する必要がある。そこで、ここでは、ホライゾン上での衝突回数に応じた最適性条件を導出する。
*Derivation of optimality condition*
Here, when the system includes discontinuous phenomena such as collisions, it is necessary to derive optimality conditions accordingly. Therefore, here, an optimality condition is derived according to the number of collisions on the horizon.

図6のような状態方程式の切り替えを持つシステムにおいて、状態x∈Rが状態方程式がf(x,u)に支配されている時、状態xはサブシステムkに支配され、サブシステムkがアクティブであると記述する。 In a system with state equation switching as in FIG. 6, when state xεR n is governed by state equation f k (x, u), state x is governed by subsystem k, and subsystem k is active.

すなわち、図6のモデルは、サブシステムkがアクティブな時、状態x∈R

Figure 0007221833000012
に従い、ある条件ψ(x)∈Rについて
ψ(x(t-))=0 ・・・(A16)
を満たすことで、状態ジャンプ(状態の不連続変化)
x(t+)=γ(x(t-)) ・・・(A17)
が起きる。 That is, the model in FIG. 6 states that when subsystem k is active, state xεR n is
Figure 0007221833000012
ψ k (x(t k −))=0 for some condition ψ k (x)∈R n (A16)
By satisfying the state jump (discontinuous change of state)
x(t k +)=γ k (x(t k −)) (A17)
happens.

また、アクティブなサブシステムは、サブシステムkからサブシステムk+1にスイッチし、状態は

Figure 0007221833000013
に支配される。 Also, the active subsystem switches from subsystem k to subsystem k+1 and the state is
Figure 0007221833000013
dominated by

このモデルをNMPCによって制御する際には、最適性条件、最適制御の必要条件を導出し、それを数値的に解く必要がある。一方、システムが衝突のような不連続事象を含む際はホライゾン上の衝突の数に応じて最適制御の必要条件が変わってくる。したがって、ここでは次の3つの場面、(場面1)ホライゾン上で衝突が起きない時、(場面2)ホライゾン上で衝突が1回起きる時、(場面3)ホライゾン上で衝突が複数回起きる時、についてそれぞれ最適性条件を導出する。 When controlling this model by NMPC, it is necessary to derive optimality conditions and necessary conditions for optimal control and solve them numerically. On the other hand, when the system contains discontinuous events such as collisions, the optimal control requirements change depending on the number of collisions on the horizon. So here we have three scenarios: (Scene 1) no collision on the horizon, (Scene 2) one collision on the horizon, (Scene 3) multiple collisions on the horizon. , respectively.

つまり、上述のように、非線形モデル予測制御部14は周囲物との衝突が起こり得ることを前提とした非線形制御モデルの最適化問題の演算を行うが、その際、これらの場面に応じて演算を行うことになる。具体的には次の(場面1)~(場面3)に説明するように、衝突が無い場合から複数回発生する場合(総じて、衝突が起こりえる場合)それぞれにおいて最適化問題の演算を行う。 That is, as described above, the nonlinear model predictive control unit 14 performs calculations for the optimization problem of the nonlinear control model on the assumption that a collision with surrounding objects may occur. will be performed. Specifically, as described in the following (Scene 1) to (Scene 3), the optimization problem is calculated for each of the cases from the case where there is no collision to the case where collision occurs multiple times (generally, the case where collision may occur).

(場面1)ホライゾン上で衝突が起きない時
ホライゾン上で衝突が起きない時、NMPCではシステムのモデル(A15)とシステムの現時刻の状態x(t)に基づき、評価関数

Figure 0007221833000014
が最小になるようなホライゾン上の最適制御入力uOPT(τ)(t≦τ≦t+Τ)を求める。そして、NMPCでは、実際のシステムヘの制御入力をu(t)=uOPT(t)として与える。 (Scene 1) When no collision occurs on the horizon When no collision occurs on the horizon, NMPC uses the system model (A15) and the current system state x(t) as the evaluation function
Figure 0007221833000014
Optimal control input u OPT (τ) (t≦τ≦t+T) on the horizon that minimizes . Then, in NMPC, the control input to the actual system is given as u(t)=u OPT (t).

但し、Lはサブシステムkに割り当てられたステージコスト関数、φはサブシステムkに割り当てられた終端コスト以降では変数τ(0≦τ≦Τ)を評価区間上の時間パラメータとして扱い、tは定数パラメータとして扱う。また、x(τ;t)、u(τ;t)をそれぞれx(t+τ)、u(t+τ)に一致するものとして扱う。 However, L k is the stage cost function assigned to subsystem k, φ k is the terminal cost assigned to subsystem k and thereafter the variable τ (0 ≤ τ ≤ T) is treated as a time parameter on the evaluation interval, and t is treated as a constant parameter. Also, x * (τ; t) and u * (τ; t) are treated as corresponding to x(t+τ) and u(t+τ), respectively.

このとき、NMPCの最適制御問題は

Figure 0007221833000015
のもとで、評価関数
Figure 0007221833000016
を最小にするような最適制御入力u(τ;t)(0≦τ≦Τ)を求める問題となる。 At this time, the optimal control problem of NMPC is
Figure 0007221833000015
Under the evaluation function
Figure 0007221833000016
The problem is to find the optimum control input u * (τ; t) (0≦τ≦T) that minimizes .

また、実際のシステムヘの制御入力は、
u(t)=u(0;t) ・・・(A23)
として与えられる。
Also, the control input to the actual system is
u(t)=u * (0;t) (A23)
given as

次に、この非線形最適制御問題を数値的に解くために最適制御問題を離散化して扱う。ホライゾンTをN分割すると、解くべき最適制御問題は、
(t)=x(t) ・・・(A24)
i+1 (t)=xi (t)+f(xi (t),ui (t))Δτ,
i=0,・・・,N-1
・・・(A25)
のもとで、評価関数

Figure 0007221833000017
を最小にするような制御入力ui (t)、i=0,・・・,N-1を求める問題になる。但し、Δτ=Τ/Nであり、xi (t)、ui (t)はそれぞれxi (iΔτ;t)、ui (iΔτ;t)に相当する値である。 Next, in order to numerically solve this nonlinear optimal control problem, the optimal control problem is discretized. When the horizon T is divided into N, the optimal control problem to be solved is
x0 * (t)=x(t) (A24)
x i +1 * (t) = x i * (t) + fk (x i * (t), u i * (t)) Δτ,
i=0,...,N-1
... (A25)
Under the evaluation function
Figure 0007221833000017
The problem is to find control inputs u i * (t), i=0, . . . , N−1 that minimize . However, Δτ=T/N, and x i * (t) and u i * (t) are values corresponding to x i * (iΔτ; t) and u i * (iΔτ; t), respectively.

この問題に対して停留条件、最適性条件を導出すると、

Figure 0007221833000018
が得られる。但し、H(x,λ,u)はサブシステムkに対するハミルトニアン、
(x,u,λ)=L(x,u)+λ(x,u) ・・・(A30)
である。 Deriving the stationary and optimality conditions for this problem yields
Figure 0007221833000018
is obtained. where H k (x, λ, u) is the Hamiltonian for subsystem k,
Hk (x,u,λ ) = Lk (x,u)+ λTfk (x,u) (A30)
is.

このとき、最適制御問題は、(A24)-(A29)を満たすような未知量x (t),・・・,x (t)、u (t),・・・,uN-1 (t)、λ (t),・・・,λ (t)を求める問題となる。もしu (t),・・・,uN-1 (t)を知っていればx (t),・・・,x (t)、λ (t),・・・,λ (t)は(A24)-(A28)から計算することができる。 At this time, the optimal control problem is the unknown quantity x 0 * (t), . It becomes a problem to find u N−1 * (t), λ 0 * (t), . . . , λ N * (t). If u 0 * (t),..., u N-1 * (t) are known, x 0 * (t),..., x N * (t), λ 0 * (t), . . , λ N * (t) can be calculated from (A24)−(A28).

そこで、本質的な未知量としてU(t)を

Figure 0007221833000019
として定義する。 Therefore, U(t) as an essential unknown quantity is
Figure 0007221833000019
defined as

このとき、U(t)についての最適性条件で構成されたベクトルは

Figure 0007221833000020
となる。 Then the vector constructed of optimality conditions for U(t) is
Figure 0007221833000020
becomes.

(場面2)ホライゾン上で衝突が1回起きる時
次に、ホライゾン上で衝突が1回起きる場合について最適性条件を導出する。ホライゾン上の時刻τで衝突が起きるとすると、状態について、

Figure 0007221833000021
と予測することができる。 (Scene 2) When one collision occurs on the horizon Next, the optimality condition is derived for the case where one collision occurs on the horizon. Suppose a collision occurs at time τ k on the horizon, then for the state
Figure 0007221833000021
can be predicted.

このとき、最適制御問題は、これらの状態についての方程式のもとで

Figure 0007221833000022
を最小にするような最適制御入力u(τ;t)(0≦τ≦Τ)を求める問題となる。 Then the optimal control problem is expressed under the equations for these states as
Figure 0007221833000022
The problem is to find the optimum control input u * (τ; t) (0≦τ≦T) that minimizes .

次に、ホライゾン上で衝突が起きない場合と同様にホライゾン上を離散化して最適性条件を求める。まず、衝突が起きるステップi
Δτ≦τ≦(i+1)Δτ ・・・(A38)
として定義すると、状態の予測は

Figure 0007221833000023
として行うことができる。ここで、Δτk1=τ-iΔτ、Δτk2=Δτ-Δτk1である。 Next, the optimality condition is obtained by discretizing on the horizon in the same way as when collisions do not occur on the horizon. First, the step i k at which collision occurs is i k Δτ≦τ k ≦(i k +1)Δτ (A38)
, the state prediction is
Figure 0007221833000023
can be done as where Δτ k1k −i k Δτ and Δτ k2 =Δτ−Δτ k1 .

また、ホライゾン上の状態の初期値はこれまでと同様に
(t)=x(t) ・・・(A45)
として与えられる。評価関数Jは

Figure 0007221833000024
と離散化される。 Also, the initial value of the state on the horizon is x 0 * (t)=x(t) (A45)
given as The evaluation function J is
Figure 0007221833000024
and discretized.

このとき最適制御問題は、(A39)-(A45)のもとで評価関数(A46)を最小にするような制御入力の系列ui (t)(i=0,・・・,N-1)、u(τ+;t)を求める制御入力を求める問題に帰着される。この問題に対して最適性条件を導出するために、衝突条件(A41)に対してラグランジュ乗数ν∈Rを導入する。このとき、最適性条件は次のように得られる。 At this time, the optimal control problem is a sequence of control inputs u i * (t) (i=0, . . . , N− 1), which reduces to the problem of finding a control input that yields u *k +; t). To derive the optimality condition for this problem, we introduce the Lagrangian multiplier νεR l for the collision condition (A41). Then, the optimality condition is obtained as follows.

Figure 0007221833000025
Figure 0007221833000025

Figure 0007221833000026
Figure 0007221833000026

このとき、最適制御問題は、(A39)-(A45)、(A48)-(A57)を満たすようなx (t),・・・,xik (t),x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik (t),λ(τ-;t),λ(τ+;t),λik (t),・・・,λ (t),u (t),・・・,uik (t),u(τ+;t),uik+1 (t),・・・,uN-1 (t),ν (t),τを求める問題に帰着される。 At this time, the optimal control problem is x 0 * (t), . . . , x ik * (t), x *k; t), x *k +; t), x ik+1 * (t), . . . , x N * (t), λ 0 * ( t), . , λ *k −; t), λ *k +; t), λ ik * (t), ..., λ N * (t), u 0 * (t), ..., In the problem of finding u ik * (t), u *k + ; t), u ik +1 * ( t ) , . be returned.

これらの未知量のうち、本質的な未知量を次のように定義する。

Figure 0007221833000027
Among these unknown quantities, essential unknown quantities are defined as follows.
Figure 0007221833000027

但し、U(t)を次のように定義する。

Figure 0007221833000028
However, U k (t) is defined as follows.
Figure 0007221833000028

このような定義により、このU(t)が分かっていればx (t),・・・,xik (t),x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik (t),・・・,λ(τ-;t),λ(τ+;t),λik (t),・・・,λ (t)を(A39)-(A45)、(A47)-(A52)から求めることができる。 By such definition, if this U(t) is known, x 0 * (t ) , . . . , x ik * (t), x *k ; ; t), x ik+1 * (t), ..., x N * (t), λ 0 * (t), ..., λ ik * (t), ..., λ *k - ; t), λ *k +; t), λ ik * (t), ..., λ N * (t) from (A39) - (A45), (A47) - (A52) can be done.

このときU(t)が満たすべき条件は、

Figure 0007221833000029
と得られる。 The condition that U(t) should satisfy is
Figure 0007221833000029
is obtained.

但しF(U(t),t)は次式で示される。

Figure 0007221833000030
However, F k (U k (t), t) is represented by the following equation.
Figure 0007221833000030

(場面3)ホライゾン上で衝突が複数回起きる時
ホライゾンで複数回衝突が起きる場合の最適性条件は、衝突の回数が1回の場合の最適性条件を拡張することで求めることができる。k,・・・,k+l回目の衝突がホライゾン上の時刻τ,・・・,τk+lで起きるとする。このとき、(A38)で求めた衝突が起きるステップi,・・・,ik+lについて、(A40)-(A43)からx(τ-;t),x(τ+;t),xik+1 (t)を、k=k,・・・,k+lについて求めることができる。λについても同様に、(A49)-(A51)からλ(τ-;t),λ(τ+;t),λik (t)を各i,・・・,ik+lについて求めることができる。i,・・・,ik+l以外の全てのiについては、xとλはそれぞれ(A39)、(A52)から計算することができる。
(Scene 3) When multiple collisions occur on the horizon The optimality condition when multiple collisions occur on the horizon can be obtained by extending the optimality condition when the number of collisions is one. Let the k, . . . , k + l-th collision occur at times τ k , . At this time, for the steps i k , . ), x ik+1 * (t) can be determined for k=k, . . . , k+l. Similarly, for λ, λ *k −; t), λ *k +; t), λ ik * (t) from (A49)-(A51) to each i k , . . . , i k+l can be determined. For all i except i k , .

このとき本質的な未知量は、

Figure 0007221833000031
として定義することができる。 In this case, the essential unknown quantity is
Figure 0007221833000031
can be defined as

このときU(t)が満たすべき条件は次のようになる。

Figure 0007221833000032
At this time, the conditions that U(t) should satisfy are as follows.
Figure 0007221833000032

ここで、Fは(A61)であり、Fの要素の各iステップ目については、

Figure 0007221833000033
の代わりに
Figure 0007221833000034
を代用する。 where F k is (A61) and for each i k step of the elements of F,
Figure 0007221833000033
Instead of
Figure 0007221833000034
substitute.

*非線形モデル予測制御の実行アルゴリズム*
非線形モデル予測制御を行うためには、上述のように求めた最適性条件を数値的に解く必要がある。本実施の形態では短いサンプリング周期内でもロボットのような複雑なシステムの制御を目標とするため、NMPCの高速数値計算アルゴリズムであるC/GMRES法を用いる。
*Execution algorithm for non-linear model predictive control*
In order to perform nonlinear model predictive control, it is necessary to numerically solve the optimality condition obtained as described above. In this embodiment, the C/GMRES method, which is a high-speed numerical calculation algorithm of NMPC, is used in order to control a complicated system such as a robot even within a short sampling period.

**C/GMRES法**
C/GMRES法は連続変形法とGMRES法を組み合わせた手法である。C/GMRES法では、非線形方程式F(U(t),x(t),t)=0を直接解いてU(t)を直接求めるのではない。C/GMRES法では、U(t)の時間についての連続性を前提として、各サンプリング時刻で最適なU(t)を求め、
U(t+Δt)=U(t)+U(t)Δt ・・・(A64)
として更新する。但し、Δtはサンプリング周期である。
**C/GMRES method**
The C/GMRES method is a method combining the continuous deformation method and the GMRES method. The C/GMRES method does not directly solve the nonlinear equation F(U(t), x(t), t)=0 to obtain U(t) directly. In the C/GMRES method, on the assumption that U(t) is continuous with respect to time, the optimum U(t) is obtained at each sampling time,
U(t+Δt)=U(t)+U(t)Δt (A64)
Update as However, Δt is the sampling period.

C/GMRES法ではU(t)を求めるために連続変形法を用いてF=0を

Figure 0007221833000035
として変形する。ここで、ζ>0は安定化パラメータである。この方程式は
Figure 0007221833000036
についての線形方程式としてみなすことができる。そこで、この方程式を線形方程式の高速数値解法であるGMRES法を用いて解く。以上がC/GMRES法の簡単な説明である。 In the C/GMRES method, the continuous deformation method is used to obtain U(t), and F=0
Figure 0007221833000035
transforms as where ζ>0 is a stabilization parameter. This equation is
Figure 0007221833000036
can be viewed as a linear equation for Therefore, this equation is solved using the GMRES method, which is a high-speed numerical solution method for linear equations. The above is a brief description of the C/GMRES method.

**C/GMRES法の衝突現象への拡張**
C/GMRES法はU(t)の連続性が前提にされている。その一方で、C/GMRES法は、衝突現象を含むシステムに対する問題は不連続現象が伴い、この(A64)による更新では解の連続性の前提が成り立たなくなる場合がある。この連続性を成り立たせるためには、ホライゾン上でのあるサブシステムkに割り当てられた制御入力が、同様にあるサブシステムに割り当てられた制御入力によって更新される必要がある。
**Extension of the C/GMRES method to collision phenomena**
The C/GMRES method assumes continuity of U(t). On the other hand, in the C/GMRES method, a problem for a system including a collision phenomenon is accompanied by a discontinuity phenomenon, and the update by (A64) may not hold the premise of continuity of the solution. In order for this continuity to hold, the control input assigned to a subsystem k on the horizon needs to be updated by the control input assigned to a similar subsystem.

すなわち、ホライゾン上の任意の衝突kについて、τ(t+Δt)<iΔτのとき、τ(t+Δt)/Δτ<i≦iである各iについてu (t+Δt)は

Figure 0007221833000037
として更新する。 That is, for any collision k over the horizon, if τ k (t+Δt)<i k Δτ, then u i * (t+Δt) for each i with τ k (t+Δt)/Δτ<i≦i k is
Figure 0007221833000037
Update as

同様に、(i+1)Δτ<τ(t+Δt)のとき、i<i<τ(t+Δt)/Δτを満たす各iについて、u (t+Δt)を

Figure 0007221833000038
として更新する。 Similarly, when (i k +1)Δτ<τ k (t+Δt), for each i that satisfies i k <i<τ k (t+Δt)/Δτ, u i * (t+Δt) is
Figure 0007221833000038
Update as

もう1つの修正点としてヤコビ行列とベクトルの前進差分近似がある。式(A65)のヤコビ行列は、あるベクトルW∈RmN、w∈R、ω∈R、十分小さな実数h>0を用いて、

Figure 0007221833000039
として前進差分近似される。 Another modification is forward difference approximation of Jacobian matrices and vectors. Using some vector WεR mN , wεR n , ωεR, and a sufficiently small real number h>0, the Jacobian matrix of equation (A65) is
Figure 0007221833000039
is a forward difference approximation as

この差分近似も時刻tとt+hにおける予測ホライゾン上のサブシステムについての連続性を前提としている。その一方で、
Δτ≦τ(t)<iΔτ+h ・・・(A69)
のとき、この連続性が成り立たなくなる。
This difference approximation also assumes continuity for the subsystems on the prediction horizon at times t and t+h. On the other hand,
i k Δτ≦τ k (t)<i k Δτ+h (A69)
When , this continuity ceases to hold.

そこで、そのような場合は

Figure 0007221833000040
として後退差分近似を行う。但し、hを十分小さくしておけば、(A69)はほとんど起こらない。 So in such a case
Figure 0007221833000040
to perform backward difference approximation. However, if h is sufficiently small, (A69) hardly occurs.

**スイッチによって追加される変数の初期化アルゴリズム**
次に、衝突によって追加される変数の初期化アルゴリズムについて説明する。
もし時刻t-Δtのホライゾン上にスイッチkが存在しないが、時刻tには存在する場合、すなわちスイッチkが時刻tにホライゾン上に現れる場合、次のようになる。すなわち、このような場合、時刻t-Δtのときの最適制御問題には含まれていなかった新たな変数u(τ+;t)、ν 、τが時刻tに追加されることになる。このとき新たな変数u(τ+;t)、ν 、τは前の時刻で求めてはいないため、C/GMRES法によりこれらを求めることができない。また、スイッチkがN-1ステップ以前のiで起きたとき、それまでサブシステムkについて最適に求められたuik (t),・・・,uN-1 (t)をサブシステムk+1について最適に求め直す必要がある。但し、サンプリング周期を十分小さくしている限り、ほとんどのケースでは、i=N-1であり、このとき初期化する変数はu(τ+;t)、ν 、τだけでよい。このとき、本来であればホライゾン全体についてニュートン法などを用いてもう1度最適制御問題を解く必要があるが、計算時間が膨大になってしまうという問題点がある。そこで、少ない計算時間で部分的に最適な値を求めることでこれらの値を初期化する手法を採用するとよい。以下に、そのような手法について説明する。
** Initialization Algorithm for Variables Added by Switches **
Next, we describe the initialization algorithm for variables added by collisions.
If switch k is not on the horizon at time t−Δt, but it is at time t, ie switch k appears on the horizon at time t, then: That is, in such a case, new variables u *k +; t), ν k * , τ k that were not included in the optimal control problem at time t−Δt are added at time t. It will be. At this time, the new variables u *k +; t), ν k * , and τ k have not been obtained at the previous time, so they cannot be obtained by the C/GMRES method. Also , when switch k occurs at i k before N−1 steps, u ik * ( t), . We need to re-determine optimally for system k+1. However, as long as the sampling period is sufficiently small, i k =N−1 in most cases, and the only variables to be initialized at this time are u *k +; t), ν k * , and τ k . OK. At this time, originally, it is necessary to solve the optimum control problem once again using Newton's method or the like for the entire horizon, but there is a problem that the calculation time becomes enormous. Therefore, it is preferable to adopt a method of initializing these values by obtaining partially optimum values in a short calculation time. Such techniques are described below.

まず、ホライゾン上で衝突条件ψ=0が満たされたことを観測したとする。すなわち、あるステップで初めて

Figure 0007221833000041
を観測したときを考える。このとき、部分的に初期化を行うためにまずiステップ目までの制御入力、状態の系列は最適であると仮定する。すなわち、iステップ目以降での最適な変数を求める問題を定義し解くことでこの追加された変数の初期化を行う。以降では、i=N-1のとき、i<N-1の2通りに分けて記述を行う。 First, let us assume that we observe that the collision condition ψ=0 is satisfied on the horizon. i.e. for the first time at some step
Figure 0007221833000041
Consider when you observe At this time, it is assumed that the sequence of control inputs and states up to the ik- th step is optimal for partial initialization. That is, the added variables are initialized by defining and solving the problem of finding the optimum variables after the i kth step. In the following, when i k =N−1, two cases of i k <N−1 are described.

=N-1のとき:
このとき、もしτ、u(τ+;t)、ν が分かっていれば、既に計算されたxN-1 (t)、uN-1 (t)を用いて、

Figure 0007221833000042
が計算できる。 When i k =N−1:
Then, if τ k , u *k +; t), ν k * are known, using the already calculated x N−1 * (t), u N−1 * (t), ,
Figure 0007221833000042
can be calculated.

ここで解く最適制御問題は、(A72)-(A75)のもとで、N-1ステップ以降の評価関数

Figure 0007221833000043
を最小にするようなu(τ+;t)、ν 、τを求める問題である。 The optimal control problem to be solved here is the evaluation function after the N-1 step under (A72)-(A75)
Figure 0007221833000043
The problem is to find u *k +; t), ν k * , τ k that minimizes .

この問題に対して最適性条件を導出すると、

Figure 0007221833000044
が得られる。 Deriving the optimality condition for this problem,
Figure 0007221833000044
is obtained.

この初期化の実行は以下のように行われる。ここではホライゾン上で初めてψ(x (t))<0となるのがi=Nである場合を考えているため、まずτをψ(xN-1 (t))とψ(x (t))から

Figure 0007221833000045
として与える。次に、u(τ+;t)とν (t)とについて、ニュートン法を行うための適当な初期推定解を与える。 This initialization is performed as follows. Here, since ψ k (x i * (t)) < 0 for the first time on the horizon is considered when i=N, first τ k is changed to ψ k (x N−1 * (t)) and ψ k (x N * (t)) from
Figure 0007221833000045
give as Next, for u *k +; t) and ν k * (t), we give a suitable initial guess solution for performing Newton's method.

そして求めたい未知量を

Figure 0007221833000046
とする。 And the unknown quantity we want to find is
Figure 0007221833000046
and

また、Uk,init(t)が満たすべき条件を

Figure 0007221833000047
とする。 Also, the condition that U k,init (t) should satisfy is
Figure 0007221833000047
and

上述した求めたい未知量及びUk,init(t)が満たすべき条件に対して、前進差分ニュートンGMRES法による反復を行う。次のアルゴリズム1では、このUk,init(t)についてこの初期化をまとめている。 The forward difference Newtonian GMRES method iterates over the unknown quantity to be determined and the conditions that U k,init (t) should satisfy. Algorithm 1 below summarizes this initialization for this U k,init (t).

[アルゴリズム1:Uk,init(t)の初期化(i=N-1のとき)]
1:τを(A98)により初期化する。
2:u(τ+;t)とν (t)に適当な初期推定解を代入する。
3:x(τ-;t),x(τ+;t),x (t),λ (t),λ(τ+;t)を求め、Fk,init(Uk,init(t),t)を計算する。
4:while |Fk,init(Uk,init(t),t)|<τinit or i<imax do
5:前進差分Newton-GMRES法をFk,init(Uk,init(t),t)に用いることでΔUk,initを求める。
6:Uk,init(t)をUk,init(t)←Uk,init(t)+ΔUk,initと更新する。
7:x(τ-;t),x(τ+;t),x (t),λ (t),λ(τ+;t)を求め、Fk,init(Uk,init(t),t)を計算する。
8:end while
9:Uk,init(t)の初期化終わり。
[Algorithm 1: Initialization of U k,init (t) (when i k =N−1)]
1: Initialize τ k by (A98).
2: Substitute suitable initial guesses for u *k +; t) and ν k * (t).
3: x *k −; t), x *k +; t), x N * (t), λ N * (t), λ *k +; t), F k , init (U k, init (t), t).
4: while |F k, init (U k, init (t), t) |<τ init or i<i max do
5: Obtain ΔU k,init by using the forward difference Newton-GMRES method on F k,init (U k,init (t),t).
6: Update U k,init (t) as U k,init (t)←U k,init (t)+ΔU k,init .
7: x *k −; t), x *k +; t), x N * (t), λ N * (t), λ *k +; t), F k , init (U k, init (t), t).
8: end while
9: End of initialization of U k,init (t).

<N-1のとき:
このとき解くべき最適制御問題とは、

Figure 0007221833000048
のもとで、
Figure 0007221833000049
を最小にするようなu(τ+;t)、uik+1 (t),・・・,uN-1 (t)、ν 、τを求める問題である。 When i k <N−1:
The optimal control problem to be solved at this time is
Figure 0007221833000048
under the
Figure 0007221833000049
The problem is to find u * ( τ k + ; t), u ik+ 1 * ( t ), .

この問題に対して最適性条件を導出すると、次のようになる。

Figure 0007221833000050
The optimality condition for this problem is derived as follows.
Figure 0007221833000050

=N-1の場合と同様に、xik (t),uik (t)がこの初期化問題の境界条件として与えられる。この初期化の実行はi=N-1のときと同様である。まず、τをψ(xik (t))とψ(xik+1 (t))から

Figure 0007221833000051
として与える。 As with i k =N−1, x ik * (t), u ik * (t) are given as boundary conditions for this initialization problem. Performing this initialization is the same as when i k =N−1. First, τ k is derived from ψ k (x ik * (t)) and ψ k (x ik+1 * (t)) as
Figure 0007221833000051
give as

次に、u(τ+;t)とν (t)に適当な初期推定解を与える。uik+1 (t),・・・,uN-1 (t)については前のサンプリング時刻で求めた値をそのままNewton-GMRES法の初期推定解として用いる。求める未知量を

Figure 0007221833000052
とする。 Next, we give u(τ k +; t) and ν k * (t) suitable initial guess solutions. For u ik +1 * (t), . the desired unknown quantity
Figure 0007221833000052
and

k,init(t)が満たすべき条件は

Figure 0007221833000053
となる。 The condition that U k,init (t) should satisfy is
Figure 0007221833000053
becomes.

上述した求めたい未知量及びUk,init(t)が満たすべき条件に対して、前進差分ニュートンGMRES法による反復を行う。次のアルゴリズム2では、このUk,init(t)についてこの初期化をまとめている。 The forward difference Newtonian GMRES method iterates over the unknown quantity to be determined and the conditions that U k,init (t) should satisfy. Algorithm 2 below summarizes this initialization for this U k,init (t).

[アルゴリズム2:Uk,init(t)の初期化(i<N-1のとき)]
1:τを(A98)により初期化する。
2:u(τ+;t)とν (t)に適当な初期推定解を代入する。
3:x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik+2 (t),λ(τ+;t)を求め、Fk,initを計算する。
4:while |Fk,init(U(t),x(t),t)|<τinit or i<imax do
5:前進差分Newton-GMRES法をFk,init(U(t),x(t),t)に用いることでΔUk,initを求める。
6:Uk,init(t)をUk,init(t)←Uk,init(t)+ΔUk,initと更新する。
7:x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik+2 (t),λ(τ+;t)を求め、Fk,initを計算する。
8:end while
9:Uk,init(t)の初期化終わり。
[Algorithm 2: Initialization of U k,init (t) (when i k < N−1)]
1: Initialize τ k by (A98).
2: Substitute suitable initial guesses for u *k +; t) and ν k * (t).
3: x * ( τk- ;t), x * ( τk +;t), xik+1 * (t), ..., xN * (t), λN * (t), ... , λ ik+2 * (t), λ *k +; t) to calculate F k,init .
4: while |F k, init (U(t), x(t), t) |<τ init or i<i max do
5: Obtain ΔU k, init by using the forward difference Newton-GMRES method on F k,init (U(t), x(t), t).
6: Update U k,init (t) as U k,init (t)←U k,init (t)+ΔU k,init .
7: x *k −; t), x *k +; t), x ik+1 * (t), ..., x N * (t), λ N * (t), ... , λ ik+2 * (t), λ *k +; t) to calculate F k,init .
8: end while
9: End of initialization of U k,init (t).

[数値シミュレーション]
次に、上述した手法を用いて具体的にコンパス型モデルの歩行制御の数値シミュレーションを実行した結果を示す。以下に説明するシミュレーションは、本実施の形態にかかる非線形モデル予測制御のアルゴリズムを、図4で例示したコンパス型モデルにかかるロボット100に適用したものである。
[Numerical simulation]
Next, the result of numerical simulation of the walking control of the compass type model using the above-described method will be shown. The simulation described below applies the nonlinear model predictive control algorithm according to the present embodiment to the robot 100 according to the compass model illustrated in FIG.

*評価関数*
まず、コンパス型歩行制御に用いる際の評価関数を設定する。継続的な歩行制御を実現するために、振り足を前に出す動作を評価関数として加えることを考える。すなわち、遊脚を前に出す速度

Figure 0007221833000054
を、適当な目標値νrefに近づけるような項
Figure 0007221833000055
を評価関数に加える。また、その際に遊脚が地面から高く上がりすぎて非効率な穂動きをしないようq(θ+θも加える。最後に、使用エネルギーの少ない自然な歩行を実現するため、ruを加える。 *Evaluation function*
First, an evaluation function for use in compass-type walking control is set. In order to realize continuous walking control, we consider adding the action of swinging the leg forward as an evaluation function. In other words, the speed at which the free leg moves forward
Figure 0007221833000054
to a suitable target value ν ref
Figure 0007221833000055
is added to the evaluation function. At that time, q 212 ) 2 is also added so that the free leg does not rise too high from the ground and move inefficiently. Finally, ru 2 is added to achieve natural walking with less energy consumption.

以上から、評価関数は、

Figure 0007221833000056
となる。また、本実施の形態では、終端コストについてφ(x)=0としている。 From the above, the evaluation function is
Figure 0007221833000056
becomes. Also, in the present embodiment, φ(x)=0 for the termination cost.

*シミュレーション条件*
シミュレーションに用いたコンパス型モデルの物理パラメータは、m=m=1.0[kg]、l=1.0[m]、d=0.5[m]、I=0.08333[kg・m]として与える。
*Simulation conditions*
The physical parameters of the compass model used in the simulation are m 0 =m=1.0 [kg], l=1.0 [m], d=0.5 [m], I=0.08333 [kg· m 2 ].

シミュレーション条件としては、(A6)に基づく状態の初期値はx(0)=[-0.14 0.14 0.50 0.58]、シミュレーション中のモデルの状態の更新及びサンプリング周期はΔt=0.001[s]とする。評価関数内のパラメータは、q=q=1.0、r=0.5、νref=0.5[rad/s]とする。ホライゾンの長さはT(t)=T(1-e-αt)、α=1.0、T=0.8[s]とし、評価区間の分割数は、N=80とする。また、差分近似(A68)、(A70)の差分は、h=1.0×10-8として与える。 As simulation conditions, the initial value of the state based on (A6) is x(0)=[−0.14 0.14 0.50 0.58] T , and the model state update and sampling period during simulation is Δt = 0.001 [s]. The parameters in the evaluation function are q 1 =q 2 =1.0, r=0.5, v ref =0.5 [rad/s]. The length of the horizon is T(t)=T f (1−e −αt ), α=1.0, T f =0.8 [s], and the division number of the evaluation interval is N=80. Also, the difference between the difference approximations (A68) and (A70) is given as h=1.0×10 −8 .

*シミュレーション結果*
図7~図12は、本実施の形態にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。図13はその歩行制御におけるホライゾン上での予測衝突時刻のグラフを示す図で、図14は図13の一部を拡大したグラフを示す図である。
*simulation result*
7 to 12 are diagrams showing results of simulating walking control of a compass model as an example of nonlinear model predictive control according to the present embodiment. FIG. 13 is a diagram showing a graph of predicted collision times on the horizon in the walking control, and FIG. 14 is a graph showing a part of FIG. 13 enlarged.

図7ではθの変化を、図8ではθの変化を、図9ではθ(ドット)の変化を、図10ではθ(ドット)の変化を、図11ではuの変化を、図12では||F||の変化を、それぞれ示している。 Change in θ 1 in FIG. 7, change in θ 2 in FIG. 8, change in θ 1 (dot) in FIG. 9, change in θ 2 (dot) in FIG. 10, change in u in FIG. FIG. 12 shows changes in ||F||.

図12における||F||(エラーノルム)は、(A32),(A61),(A63)で示す各場面におけるF(U(t),x(t),t)の大きさ、すなわち最適解からの現在の解の誤差を表す。||F||が他の点と比べ大きくなっている点がある。これは、θ、θが垂直になっている時刻、すなわち実際の制御対象が地面と衝突を起こしている時刻と一致している。よって、これは衝突によってホライゾン上の最適性条件(場面1~3について説明した最適性条件)が変わったために生じたと考えられる。その点を考慮すると、図7~図12で示すこのシミュレーション結果は、制御入力が滑らかな挙動となっているのが分かる。 ||F|| (error norm) in FIG. Represents the error of the current solution from the solution. There is a point where ||F|| is larger than other points. This coincides with the time when θ 1 and θ 2 are vertical, that is, the time when the actual controlled object collides with the ground. Therefore, it is considered that this occurred because the collision changed the optimality condition on the horizon (the optimality condition described for Scenes 1 to 3). Considering this point, it can be seen that the simulation results shown in FIGS. 7 to 12 show smooth behavior of the control input.

図13においては、t=0になっている時刻では、評価区間上に衝突を検出していないことを表している。また、このシミュレーションで設定した評価区間長さでは、ホライゾン上において1回の衝突のみが起こっていた。図14では、各時刻でホライゾン上の衝突時刻が最適化されていることが分かる。また、サンプリング周期を1[ms]として行った本シミュレーションで、NMPCの1サンプリングあたりの更新時刻は0.8[ms]前後であり、実時間での歩行制御に成功しているのが分かる。 FIG. 13 shows that no collision is detected in the evaluation section at the time when t k =0. Also, in the evaluation section length set in this simulation, only one collision occurred on the horizon. In FIG. 14, it can be seen that the collision time on the horizon is optimized at each time. Also, in this simulation performed with a sampling period of 1 [ms], the update time per sampling of NMPC is around 0.8 [ms], and it can be seen that walking control in real time is successful.

[本実施の形態の特徴について]
上述したように、本実施の形態では、その主たる特徴の一つとして、上記予測手段が制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する。
[Features of this embodiment]
As described above, in this embodiment, as one of its main features, the prediction means predicts the number of collisions for the controlled object at each time until a predetermined period from that time.

このような未来の衝突回数の予測について簡単に補足説明する。この予測は制御周期ごとに実行され、上述のような最適制御では求解の過程で未来(予測区間内)の各時刻における状態も予測されることになる。よって、今回の最適制御を実行する前に、前回の最適制御で予測された未来の状態に対して例えば(A33)~(A36)を適用することで、未来の衝突回数を予測することができる。また、上述のようにこの予測は制御周期ごとに実行されるため、予測区間(ホライゾン)の長さを一定とすると、歩行速度が上がる程、予測される衝突回数が増え、減速する程、予測される衝突回数が減少することになる。 A brief supplementary explanation of such prediction of the number of future collisions will be given. This prediction is executed for each control cycle, and in the optimum control as described above, the state at each time in the future (within the prediction interval) is also predicted in the process of finding the solution. Therefore, by applying (A33) to (A36) to the future state predicted by the previous optimum control before executing the current optimum control, it is possible to predict the number of future collisions. . In addition, as described above, this prediction is executed for each control cycle, so if the length of the prediction interval (horizon) is constant, the more the walking speed increases, the more collisions are predicted. This will reduce the number of collisions that occur.

そして、上述したように、本実施の形態では、上記演算手段は、周囲物との衝突が起こり得ることを前提とした非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて(予測した衝突回数ごとに区別して)実行する。この演算について簡単に補足説明する。 Then, as described above, in the present embodiment, the computing means computes the optimization problem of the nonlinear control model on the premise that collisions with surrounding objects may occur, depending on the predicted number of collisions ( (separately for each predicted number of collisions). A brief supplementary explanation of this calculation will be given.

本実施の形態では、最適制御問題の中に衝突時刻を組み込んでいる。すなわち、本実施の形態では、「最適性条件の導出」において場面1~3ごとの制御について例示したように、衝突回数の予測に基づいて上記場面1~3のいずれを用いるか(どの最適制御の必要条件を用いるか)により最適制御問題の切り替えを行っている。なお、衝突時刻を最適化問題に組み込まない、即ち衝突時刻を変更しない場合は、所定の衝突時刻に衝突が起こるように定式化を行い、通常通りC/GMRES法を用いて制御を行うことができる。 In this embodiment, the collision time is incorporated into the optimal control problem. That is, in the present embodiment, as exemplified for the control for each scene 1 to 3 in "Derivation of the optimality condition", which of the scenes 1 to 3 is used based on the prediction of the number of collisions (which optimal control The optimal control problem is switched by using the necessary condition of If the collision time is not included in the optimization problem, i.e., if the collision time is not changed, it is possible to formulate so that the collision occurs at a predetermined collision time and control using the C/GMRES method as usual. can.

但し、単純に衝突時刻も最適制御問題に組み込むと、衝突回数によって解くべき最適制御問題が変化するため、前回の求解結果を用いたC/GMRES法のような手法では前回の求解結果を得ることが困難となる場合がある。これは、衝突回数が前回と今回の制御周期で異なっている場合には、前回解いた最適制御問題が今回解こうとしている最適制御問題と異なるためである。具体的には、衝突回数が変わると最適制御問題自体が変わるため、解ベクトルも異なった形になる。例えば衝突条件に対するラグランジュ定数vと衝突時間τなど、前回の最適化問題では解ベクトルに含まれていなかった変数が今回の最適化問題には含まれるようになる。 However, if the collision time is simply incorporated into the optimum control problem, the optimum control problem to be solved will change depending on the number of collisions. can be difficult. This is because if the number of collisions differs between the previous and current control cycles, the optimal control problem solved last time is different from the optimal control problem to be solved this time. Specifically, since the optimal control problem itself changes when the number of collisions changes, the solution vector will also have a different shape. For example, the current optimization problem includes variables that were not included in the solution vector in the previous optimization problem, such as the Lagrangian constant v and the collision time τ for the collision condition.

したがって、本実施の形態として説明したように、最適性条件を切り替えるだけでなく、この切り替えに伴って新たに加わる制御の変数を初期化することが望ましい。この初期化は、前回の求解結果を基にして解ベクトルを初期化するものとなっている。「スイッチによって追加される変数の初期化アルゴリズム」において例示したように、この切り替えに伴って新たに加わる制御の変数とは例えばu(τ+;t)、ν 、τを指す。 Therefore, as described in the present embodiment, it is desirable not only to switch the optimality condition, but also to initialize the newly added control variables associated with this switching. This initialization is to initialize the solution vector based on the previous solution finding result. As exemplified in the "initialization algorithm for variables added by the switch", the control variables newly added along with this switching refer to u *k +; t), ν k * , τ k , for example. .

このように、本実施の形態では、衝突回数の予測に基づいて最適制御問題を演算し、前回解いた最適制御問題の解を利用して、今回の最適制御問題の初期値を適切に設定することが好ましい。 Thus, in the present embodiment, the optimum control problem is calculated based on the prediction of the number of collisions, and the solution of the previously solved optimum control problem is used to appropriately set the initial value of the current optimum control problem. is preferred.

以上に説明したように、本実施の形態は、各時刻において所定期間後までに制御対象が衝突する回数を予測し、その予測した衝突回数に応じて非線形制御モデルの最適化問題を演算している。すなわち、本実施の形態では、繰り返し衝突が発生することを前提とする場合において、例えば同じ期間内に衝突が発生する回数ごとに変えて非線形制御モデルを最適化する。 As described above, the present embodiment predicts the number of collisions of the controlled object within a predetermined period of time at each time, and calculates the optimization problem of the nonlinear control model according to the predicted number of collisions. there is That is, in the present embodiment, on the premise that repeated collisions occur, the nonlinear control model is optimized by changing it for each number of collisions that occur within the same period, for example.

よって、本実施の形態によれば、個々の衝突におけるタイミングの予測と実際のずれが小さくなる確率が上がり、また、統計的に見るほど予測と実際のずれはより無くなっていく。これにより、本実施の形態にかかる非線形モデル予測制御装置は、将来の実際の衝突タイミングに制御結果がより良く合う高精度な予測制御を実行することができる。 Therefore, according to the present embodiment, the probability that the difference between the predicted timing and the actual timing in each collision becomes small increases, and statistically speaking, the difference between the predicted timing and the actual timing decreases. As a result, the non-linear model predictive control device according to the present embodiment can execute highly accurate predictive control in which the control result better matches the actual collision timing in the future.

換言すれば、本実施の形態では、最適制御の予測区間上での衝突の回数に応じた定式化を行い、動作の制御に関する制御入力と衝突時刻を同時に最適化しており、それにより、状態に応じて適応的且つ最適な動作が生成可能となる。このような最適制御手法は、任意時刻での切り替えに対応した形で最適制御問題を定式化するとともに、切り替え時刻も制御変数に含めて制御入力と同時に最適化することにより、切替タイミングと予測区間の制御入力を同時最適化する手法と言える。 In other words, in the present embodiment, formulation is performed according to the number of collisions on the prediction interval of the optimum control, and the control input related to the control of the motion and the collision time are optimized at the same time. Adaptive and optimal behavior can be generated accordingly. In such an optimal control method, the optimal control problem is formulated in a way that corresponds to switching at an arbitrary time. It can be said that it is a method to simultaneously optimize the control inputs of

よって、本実施の形態によれば、状態に応じて適切な切り替えタイミングと制御入力を発生できるため、制御対象のより効率的で安定な動作を実現できる。例えば、切り替えのタイミングを予め決めておく場合には、制御の最適性を満たすことは困難となり、どのような状態であっても決められた時刻に衝突を行おうとするため、不自然な動作になったり、電力が大きくなるような入力が必要となったりしてしまう。これに対し、本実施の形態では適切な切り替えタイミングを発生させることができるため制御の最適性を満たすことができる。例えば、歩行動作を例に考えると、外乱が生じて定常的な歩行動作から状態が外れた場合、動作軌道だけでなく、次の足が着地するタイミングも変更することで無理なく(より少ないトルクで)定常状態に戻すことができる。 Therefore, according to the present embodiment, appropriate switching timing and control input can be generated according to the state, so that more efficient and stable operation of the controlled object can be realized. For example, if the switching timing is determined in advance, it becomes difficult to satisfy the optimality of the control. Otherwise, an input that increases power is required. On the other hand, in the present embodiment, it is possible to generate an appropriate switching timing, thereby satisfying the optimality of control. For example, taking walking as an example, when a disturbance occurs and the state deviates from the normal walking motion, not only the motion trajectory but also the timing at which the next foot touches the ground can be changed in a natural way (with less torque). ) can be returned to a steady state.

(変形例)
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、ロボット100の片方の脚は、股関節部120、膝関節部122及び足首関節部124を有するとしたが、このような構成に限られない。ロボット100の脚は、3個よりも少ない数の関節部を有してもよいし、3個よりも多い数の関節部を有してもよい。この場合、状態ベクトル及び関節トルクベクトル(制御入力値)は、関節部の数に応じて、適宜、変更され得る。そして、状態方程式等の関数も、関節部の数に応じて、適宜、変更され得る。
(Modification)
It should be noted that the present invention is not limited to the above embodiments, and can be modified as appropriate without departing from the scope of the invention. For example, one leg of the robot 100 has the hip joint 120, the knee joint 122, and the ankle joint 124, but the configuration is not limited to this. The legs of the robot 100 may have less than three joints or more than three joints. In this case, the state vector and the joint torque vector (control input value) can be appropriately changed according to the number of joints. Functions such as state equations can also be changed as appropriate according to the number of joints.

また、上述した実施の形態においては、非線形システムが二足歩行ロボットである例について説明した。しかし、本実施の形態にかかる非線形モデル予測制御のアルゴリズムは、二足歩行ロボット以外の非線形システムについても適用可能であり、またコンパス型モデルでなくても適用可能である。 Also, in the above-described embodiments, an example in which the nonlinear system is a bipedal robot has been described. However, the non-linear model predictive control algorithm according to the present embodiment can also be applied to non-linear systems other than bipedal robots, and can also be applied to non-compass models.

つまり、本実施の形態にかかる非線形システムの制御方法は、以下に例示するような、繰り返し周囲物との衝突が発生することを前提とする任意の非線形システムに対して、適用可能である。なお、一見して周囲物との衝突が繰り返し起こりそうもないような制御対象であっても、周囲物との衝突が繰り返し起こり得るような制御を意図的に行うことはあり得るため、本実施の形態は、そのような制御を行う場合にも有益となる。 That is, the nonlinear system control method according to the present embodiment can be applied to any nonlinear system assuming repeated collisions with surrounding objects, such as those exemplified below. It should be noted that even for a controlled object that at first glance seems unlikely to repeatedly collide with surrounding objects, it is possible to intentionally perform control in such a way that collisions with surrounding objects can occur repeatedly. The form of is also useful for such control.

例えば、ロボットに設けたロボットハンド又はロボットアーム等を制御対象とすることもできる。この例における衝突は、ロボットハンド又はロボットアームが、周辺環境又は操作対象等の物体を押圧するとき、物体を把持し又は離すとき、球体等の物体を叩く又は打ち返すとき等に、発生し得る。なお、球体等の物体を打ち返す非線形システムの例として、例えば、卓球ロボットがある。 For example, a robot hand or a robot arm provided on the robot can be controlled. Collisions in this example can occur when a robotic hand or arm presses an object such as the environment or an object to be manipulated, grasps or releases an object, hits or hits an object such as a sphere, and so on. An example of a non-linear system that hits back an object such as a sphere is a table tennis robot.

また、例えば、本実施の形態での制御対象は、腕及び脚を同時に床等に着地して移動可能な人型ロボット又は動物型ロボット等であってもよい。この例における衝突は、人型ロボット又は動物型ロボットが、腕と脚とを同時に、壁、床又はテーブル等に接触して移動するとき、又は、人型ロボット又は動物型ロボットが、梯子又は壁等を登るとき等に、発生し得る。 Further, for example, the object to be controlled in the present embodiment may be a humanoid robot, an animal robot, or the like that can move by landing its arms and legs on the floor at the same time. Collisions in this example are when the humanoid or animal robot moves with its arms and legs simultaneously contacting a wall, floor, table, etc., or when the humanoid or animal robot moves against a ladder or wall. It can occur, for example, when climbing etc.

また、例えば、本実施の形態での制御対象は、ドローン等の無人航空機などであってもよい。この例における衝突は、無人航空機が、操作対象又は検査対象の物体に接触するとき又はその物体から離れるとき、輸送対象又は捕獲対象の物体を把持し又は離すとき等に、発生し得る。 Further, for example, the controlled object in the present embodiment may be an unmanned aerial vehicle such as a drone. A collision in this example may occur when the unmanned aerial vehicle contacts or leaves an object to be manipulated or inspected, grasps or releases an object to be transported or captured, and the like.

また、例えば、本実施の形態での制御対象は、加工機械の工具等であってもよい。この例における衝突は、加工機械の工具が、加工対象等の物体に接触し又は離れるとき等に、発生し得る。 Further, for example, the object to be controlled in the present embodiment may be a tool of a processing machine or the like. Collisions in this example can occur, such as when a tool of a machine tool touches or leaves an object, such as a workpiece.

また、例えば、本実施の形態での制御対象は、自動車のトランスミッション等であってもよい。この例における衝突は、トランスミッションのクラッチが、接触状態(動力の伝達状態)となったとき又は離間状態(動力の遮断状態)なったとき等に、発生し得る。 Further, for example, the controlled object in the present embodiment may be a transmission of an automobile or the like. A collision in this example can occur when the clutch of the transmission is in a contact state (power transmission state) or separated state (power cutoff state).

また、例えば、本実施の形態での制御対象は、飛行機等であってもよい。この例における衝突は、飛行機の離着陸において、接地の前後を含めて運動を最適化するように制御するとき等に、発生し得る。具体的には、所望の経路で着陸しつつ、着陸後すみやかに減速するようにエンジン及び機体を制御するような場合である。 Further, for example, the object to be controlled in this embodiment may be an airplane or the like. A collision in this example can occur during take-off and landing of an airplane, such as when controlling to optimize motion, including before and after touchdown. Specifically, it is a case where the engine and the aircraft are controlled so as to decelerate immediately after landing while landing on a desired route.

また、例えば、本実施の形態での制御対象は、列車等であってもよい。この例における衝突は、列車の連結において、連結の前後を含めて運動を最適化するように制御するとき等に、発生し得る。具体的には、連結時の衝撃及び駆動モータの負荷を軽減するようにモータを制御するような場合である。 Further, for example, the object to be controlled in this embodiment may be a train or the like. Collisions in this example can occur, for example, when train coupling is controlled to optimize motion, including before and after coupling. Specifically, it is a case where the motor is controlled so as to reduce the impact at the time of connection and the load on the drive motor.

上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。 In the above examples, the programs can be stored and delivered to computers using various types of non-transitory computer readable media. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (eg, flexible discs, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical discs), CD-ROMs (Read Only Memory), CD-Rs, CD-R/W, semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)). The program may also be delivered to the computer on various types of transitory computer readable medium. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. Transitory computer-readable media can deliver the program to the computer via wired channels, such as wires and optical fibers, or wireless channels.

1・・・ロボットシステム、2・・・制御装置、12・・・状態取得部、14・・・非線形モデル予測制御部、16・・・サーボ制御部、100,100-1,100-2・・・ロボット、102・・・胴体、110L・・・左脚、110R・・・右脚、112・・・上腿部、114・・・下腿部、116・・・足部、118・・・足裏センサ、120・・・股関節部、122・・・膝関節部、124・・・足首関節部、130・・・角度センサ、136・・・トルクセンサ、140・・・モータ、150・・・関節、151・・・支持脚リンク、152・・・遊脚リンク 1... Robot system, 2... Control device, 12... State acquisition unit, 14... Non-linear model prediction control unit, 16... Servo control unit, 100, 100-1, 100-2. Robot 102 Torso 110L Left leg 110R Right leg 112 Upper leg 114 Lower leg 116 Foot 118 Sole sensor 120 Hip joint 122 Knee joint 124 Ankle joint 130 Angle sensor 136 Torque sensor 140 Motor 150. .. joint 151 .. support leg link 152 .. free leg link

Claims (1)

制御対象の非線形制御モデルの最適化問題を演算しながらフィードバック制御を行うことによって、各時刻において将来の制御対象の応答を予測しながら制御対象の制御を行うことが可能に構成された非線形モデル予測制御装置であって、
繰り返し周囲物との衝突が発生することを前提とする動作を実行制御されるように構成された制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する予測手段と、
周囲物との衝突が発生することを前提とした前記非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて実行する演算手段と、
を備える、非線形モデル予測制御装置。
A nonlinear model prediction that is configured to be able to control the controlled plant while predicting the future response of the controlled plant at each time by performing feedback control while computing the optimization problem of the nonlinear control model of the controlled plant. a controller,
Prediction that predicts the number of collisions at each time until a predetermined period of time from that time for a controlled object that is configured to execute and control operations on the premise that collisions with surrounding objects will occur repeatedly. means and
a calculation means for executing calculations of the optimization problem of the nonlinear control model on the premise that collisions with surrounding objects will occur, according to the predicted number of collisions;
A nonlinear model predictive controller, comprising:
JP2019158051A 2019-08-30 2019-08-30 Nonlinear model predictive controller Active JP7221833B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019158051A JP7221833B2 (en) 2019-08-30 2019-08-30 Nonlinear model predictive controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019158051A JP7221833B2 (en) 2019-08-30 2019-08-30 Nonlinear model predictive controller

Publications (2)

Publication Number Publication Date
JP2021036390A JP2021036390A (en) 2021-03-04
JP7221833B2 true JP7221833B2 (en) 2023-02-14

Family

ID=74716671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019158051A Active JP7221833B2 (en) 2019-08-30 2019-08-30 Nonlinear model predictive controller

Country Status (1)

Country Link
JP (1) JP7221833B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115389077B (en) * 2022-08-26 2024-04-12 法奥意威(苏州)机器人***有限公司 Collision detection method, collision detection device, control apparatus, and readable storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016198873A (en) 2015-04-14 2016-12-01 トヨタ自動車株式会社 Optimum control device, optimum control method, and optimum control program
JP2018185747A (en) 2017-04-27 2018-11-22 国立大学法人京都大学 Control method of non-linear system, control device of bipedal robot, control method of bipedal robot and program of the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09251320A (en) * 1996-03-14 1997-09-22 Nissan Motor Co Ltd Robot collision prevention system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016198873A (en) 2015-04-14 2016-12-01 トヨタ自動車株式会社 Optimum control device, optimum control method, and optimum control program
JP2018185747A (en) 2017-04-27 2018-11-22 国立大学法人京都大学 Control method of non-linear system, control device of bipedal robot, control method of bipedal robot and program of the same

Also Published As

Publication number Publication date
JP2021036390A (en) 2021-03-04

Similar Documents

Publication Publication Date Title
Klemm et al. Ascento: A two-wheeled jumping robot
CN111558941B (en) Floating base dynamics feedforward control method and device and multi-legged robot
Feng et al. Optimization‐based full body control for the darpa robotics challenge
US9327399B2 (en) Movement control method for mobile robot
US8504208B2 (en) Mobile object controller and floor surface estimator
JP5034235B2 (en) Control system, control method, and computer program
JP6781101B2 (en) Non-linear system control method, biped robot control device, biped robot control method and its program
US20150051734A1 (en) Human motion tracking control with strict contact force contstraints for floating-base humanoid robots
JP2010221395A (en) System and method for tracking and balancing robots for imitating motion capture data
Ishiguro et al. High speed whole body dynamic motion experiment with real time master-slave humanoid robot system
WO2006067904A1 (en) Legged mobile robot and gait generating device
JP6421683B2 (en) Optimal control device, optimal control method, and optimal control program
Mishra et al. Robust task-space motion control of a mobile manipulator using a nonlinear control with an uncertainty estimator
Dantec et al. Whole-body model predictive control for biped locomotion on a torque-controlled humanoid robot
JP2013520327A (en) Joint system control method, storage medium, and control system
Feng Online Hierarchical Optimization for Humanoid Control.
Samy et al. QP-based adaptive-gains compliance control in humanoid falls
JP7221833B2 (en) Nonlinear model predictive controller
Ruscelli et al. A multi-contact motion planning and control strategy for physical interaction tasks using a humanoid robot
Suleiman et al. On humanoid motion optimization
Carlési et al. Nonlinear model predictive running control of kangaroo robot: A one-leg planar underactuated hopping robot
Cisneros et al. Partial yaw moment compensation using an optimization-based multi-objective motion solver
JP6168158B2 (en) Mobile robot movement control method and mobile robot
Savin Comparative analysis of control methods for walking robots with nonlinear sensors
Suleiman et al. Optimizing humanoid motions using recursive dynamics and lie groups

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20190920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220117

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221228

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230202

R150 Certificate of patent or registration of utility model

Ref document number: 7221833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150