ロボットの動力学(Newton-Euler・Lagrange法)
関節トルクと運動の関係を数式ではなくアルゴリズムとして導出。逆動力学制御やシミュレータの中身が正確に読めるようになります。
- 1.Newton-Euler法は各リンクの運動を先端から根元へ順伝播、力とトルクを先端から根元へ逆伝播する再帰計算で、逆動力学を計算量O(n)で解ける。
- 2.Lagrange法は運動エネルギーと位置エネルギーの差からトルクを解析的に導き、質量行列M(q)・コリオリ/遠心力項C(q,q̇)・重力項g(q)という構造化された運動方程式を与える。
- 3.運動方程式 M(q)q̈ + C(q,q̇)q̇ + g(q) = τ の各項を打ち消す計算トルク法(逆動力学制御)により、非線形なロボットを見かけ上の線形系として制御できる。
運動学だけでは足りない理由
順運動学・逆運動学は関節角 q と手先位置・姿勢の幾何的関係を扱いますが、そこにトルクや力は登場しません。実際にロボットを動かすには、関節に加えるトルク τ と、その結果生じる関節角の加速度 q̈ の関係——すなわち動力学——が必要です。マニピュレータは複数のリンクが直列・並列に連結された多体系であり、各リンクの慣性、リンク間の速度依存の干渉力、重力の影響が複雑に絡み合うため、単純な τ = J q̈ のような比例関係では表せません。この関係を体系的に導く方法が、力学の運動方程式を再帰的に積み上げるNewton-Euler法と、エネルギーから解析的に導出するLagrange法です。両者は数学的に同じ運動方程式へ到達しますが、計算の組み立て方と用途が異なります。
運動方程式の一般形
n自由度のマニピュレータの動力学は、次の1本の行列方程式に集約されます。
マニピュレータの運動方程式(順動力学・逆動力学に共通):
M(q) q̈ + C(q, q̇) q̇ + g(q) = τ
q : 関節角ベクトル(n×1)
M(q): 質量行列(慣性行列, n×n, 対称正定)
C(q,q̇)q̇ : コリオリ力・遠心力項(速度の2次項)
g(q): 重力項(q のみに依存)
τ : 関節トルク・力ベクトル(n×1)
M(q) はロボットの姿勢 q に応じて変化する見かけの慣性で、対角成分は各関節を単独で動かす慣性、非対角成分はある関節の加速が別の関節に及ぼす動力学的な結合(慣性カップリング)を表します。C(q,q̇)q̇ は角速度の2乗やクロス項(q̇ᵢq̇ⱼ)から生じる遠心力・コリオリ力で、静止時にはゼロになります。g(q) は重力による各関節トルクで、水平多関節アームでは姿勢によらず常に補償が必要です。この式を τ について解けば逆動力学(軌道追従に必要なトルクの計算)、q̈ について解けば順動力学(トルクを与えたときの運動のシミュレーション)になります。
運動方程式が M(q)q̈ + C(q,q̇)q̇ + g(q) = τ という形に整理できるのは、剛体の運動エネルギーが常に q̇ について2次形式、位置エネルギーが q のみの関数になるためです。次章のLagrange法で見るように、エネルギーをこの形で表す限り、加速度項・速度2次項・位置項という3種類の項に自動的に分離されます。これはロボット動力学に限らず、一般化座標で記述されるあらゆる保存力学系に共通する構造です。
Newton-Euler法: 再帰的な力の伝播
Newton-Euler法は、各リンクを1つの剛体とみなし、ニュートンの運動方程式(並進: 力=質量×加速度)とオイラーの運動方程式(回転: トルク=慣性×角加速度+角速度の外積項)を、リンクごとに順番に適用していく数値的アルゴリズムです。全体は「外向き再帰」と「内向き再帰」の2パスに分かれます。
Newton-Euler逆動力学(Recursive Newton-Euler Algorithm, RNEA):
【外向き再帰】 リンク1 → リンク2 → … → リンクn(根元から先端へ)
各リンクiについて、リンクi-1の角速度・角加速度・線形加速度に
関節iの運動を上乗せし、リンクiの
角速度 ωᵢ、角加速度 ωᵢ̇、重心の線形加速度 aᵢ
を計算する(既知の q, q̇, q̈ から運動学的に決まる)。
【内向き再帰】 リンクn → リンクn-1 → … → リンク1(先端から根元へ)
各リンクiについて、リンクi+1から受ける反作用力・反作用トルクと
リンク自身の慣性力・慣性トルクをつり合わせ、
関節力・トルク fᵢ, nᵢ
を計算する。関節iの駆動トルク τᵢ は nᵢ を関節軸へ射影して得る。
外向き再帰は純粋に運動学的で、各リンクの速度・加速度は根元側から順に決まる(先端のリンクの運動は根元側の関節運動の積み重ねだから)という直感に対応します。内向き再帰は力の作用・反作用に基づき、先端のリンクには外力(手先反力など)しか働かないため先端から計算を始められ、各関節はリンクi+1が及ぼす反力とリンク自身の慣性力を支える形でトルクが決まっていきます。この2パス構成により、計算量はリンク数nに対して線形(O(n))に収まり、質量行列を陽に組み立てるLagrange法(愚直にはO(n⁴)、対称性を利用してもO(n³)程度)より著しく高速です。そのため実機のリアルタイム制御ループでは、逆動力学の計算にNewton-Euler法(RNEA)が標準的に使われます。
RNEAは τ を直接一括で返すため、質量行列やコリオリ項を陽に見たい解析目的には不向きに見えます。しかし q̈ = 0, q̇ = 0 で重力のみを与えてRNEAを1回実行すれば g(q) が取り出せ、q̇ = 0 で単位加速度ベクトルを順に与えてn回実行すれば M(q) の各列が求まり、q̈ = 0 で q̇ のみ与えれば C(q,q̇)q̇ が求まります。この性質を使い、RNEAを内部エンジンとして質量行列などを合成する実装が多くのロボティクスライブラリで採用されています。
Lagrange法: エネルギーからの解析的導出
Lagrange法は座標系や力の伝播を個別に追わず、系全体の運動エネルギー K と位置エネルギー P の差であるラグランジアン L = K - P から、オイラー-ラグランジュ方程式によって運動方程式を解析的に導きます。
オイラー-ラグランジュ方程式(一般化座標 q, 一般化力 τ):
d/dt( ∂L/∂q̇ ) - ∂L/∂q = τ (L = K(q,q̇) - P(q))
各リンクの運動エネルギーは重心並進 + 回転で:
K = (1/2) Σᵢ [ mᵢ vᵢᵀvᵢ + ωᵢᵀ Iᵢ ωᵢ ]
mᵢ, Iᵢ : リンクiの質量・慣性テンソル
vᵢ, ωᵢ : リンクiの重心並進速度・角速度(qとq̇の関数)
K は q̇ について厳密に2次形式 K = (1/2) q̇ᵀ M(q) q̇ に整理でき、この M(q) がそのまま運動方程式の質量行列になります。オイラー-ラグランジュ方程式に K を代入し d/dt(∂K/∂q̇) を展開すると、M(q)q̈ の項に加え、M(q) が q に依存すること由来の q̇ の2次項が現れ、これがコリオリ力・遠心力項 C(q,q̇)q̇ の正体です。位置エネルギー P(q) を q で微分した ∂P/∂q が重力項 g(q) になります。つまりLagrange法は、力の伝播を1つずつ追う代わりに、エネルギーという1つのスカラー関数を偏微分するだけで運動方程式全体を機械的に導出します。
| 観点 | Newton-Euler法 | Lagrange法 |
|---|---|---|
| 導出の視点 | 各リンクの力・トルクのつり合い(ベクトル) | 系全体のエネルギー(スカラー) |
| 計算構造 | 根元→先端、先端→根元の2パス再帰 | K, P を偏微分して解析的に整理 |
| 計算量(逆動力学) | O(n)、実装が高速 | 陽な導出はO(n⁴)〜、対称性利用でO(n³)程度 |
| 得られる情報 | 関節トルク τ を直接出力 | M(q), C(q,q̇), g(q) が構造として明示される |
| 主な用途 | オンライン制御・リアルタイム計算 | モデル解析・制御則設計・シミュレータの検証 |
両手法は同一の物理を異なる経路で記述しているにすぎず、正しく導出すれば得られる M(q), C(q,q̇), g(q) は完全に一致します。実務では、制御則の設計や安定性解析にはLagrange形式の構造(M, C, g を陽に持つ式)を使い、実機やシミュレータで数値計算する段階ではNewton-Euler法(RNEA)に切り替える、という使い分けが一般的です。
逆動力学制御(計算トルク法)
運動方程式が M(q), C(q,q̇), g(q) という構造で得られることの最大の実用的意義は、これらの非線形項をトルク指令で打ち消し、ロボットを見かけ上の単純な線形系に変換できる点にあります。これを計算トルク法(Computed Torque Control)、あるいは逆動力学制御と呼びます。
計算トルク法の制御則:
τ = M(q) [ q̈_d + Kp(q_d - q) + Kd(q̇_d - q̇) ] + C(q,q̇)q̇ + g(q)
q_d, q̇_d, q̈_d : 目標軌道の角度・角速度・角加速度
Kp, Kd : 誤差フィードバックのゲイン行列
この τ を運動方程式に代入すると:
ë + Kd ė + Kp e = 0 (e = q_d - q, 誤差の線形2階系)
M(q) を左からトルクに掛け、C(q,q̇)q̇ と g(q) をそのまま加算することで、モデルが正確であれば非線形項が厳密にキャンセルされ、追従誤差 e はn個の独立した線形2階系(ちょうどPD制御と同じ形)に帰着します。誤差方程式が線形になるため、各関節ごとに独立にゲイン Kp, Kd を設計でき、極配置やLQRのような線形制御理論をそのまま適用できるようになります。これは、リンク間の慣性結合や重力・遠心力といったロボット特有の強い非線形性を、単純な誤差フィードバックの手前で解析的に消し込む「フィードバック線形化」の一種です。
計算トルク法の線形化は M(q), C(q,q̇), g(q) のモデルが実機と一致することを前提とします。質量パラメータの推定誤差、リンクのたわみ、モータや減速機の摩擦・バックラッシュなど未モデル化要素があると、非線形項は完全には打ち消されず、誤差方程式に残留外乱として現れます。実機では適応制御やロバスト制御(外乱をゲイン余裕で吸収する設計)と組み合わせ、モデル誤差に対する頑健性を別途確保するのが一般的です。
- 運動方程式:
M(q)q̈ + C(q,q̇)q̇ + g(q) = τ。M は質量行列(対称正定)、Cq̇ はコリオリ・遠心力、g は重力項。 - Newton-Euler法: 外向き再帰(速度・加速度、根元→先端)と内向き再帰(力・トルク、先端→根元)の2パス。計算量O(n)。
- Lagrange法:
L = K - Pからオイラー-ラグランジュ方程式で導出。K = (1/2)q̇ᵀM(q)q̇の M がそのまま質量行列。 - 計算トルク法:
τ = M(q)[q̈_d + Kp e + Kd ė] + C(q,q̇)q̇ + g(q)で誤差方程式を線形2階系に帰着。 - 使い分け: リアルタイム計算はNewton-Euler法、制御則設計・構造解析はLagrange法。
まとめ
ロボットの動力学は、関節トルク τ と関節運動 q, q̇, q̈ を結ぶ運動方程式 M(q)q̈ + C(q,q̇)q̇ + g(q) = τ に集約されます。Newton-Euler法は各リンクの力・トルクのつり合いを根元と先端の間で2回再帰的に伝播させる数値アルゴリズムで、計算量O(n)ゆえ実機のリアルタイム逆動力学計算に使われます。Lagrange法は運動エネルギーと位置エネルギーの差を偏微分することで同じ運動方程式を解析的に導き、質量行列・コリオリ項・重力項という構造を陽に与えるため、制御則の設計や解析に向いています。この構造を利用した計算トルク法は、非線形項をトルク指令で打ち消してロボットを見かけ上の線形系に変換し、以降の誤差フィードバック設計を大幅に単純化します。ただしこの線形化はモデルの正確さに依存するため、実機ではモデル誤差への頑健性を別途考慮する必要があります。運動学が「どこにあるか」を扱うのに対し、動力学は「どう動かすか」を数式で保証する層であり、軌道計画やSLAMで生成された目標軌道を実際のトルク指令へ変換する、ロボット制御の核心部分を担います。
ロボティクス Article
ロボットの動力学(Newton-Euler・Lagrange法)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ロボット工学
比較で見る軸
難易度: advanced / カテゴリ: ロボティクス / タグ数: 6
導入後に効く点
Lagrange法は運動エネルギーと位置エネルギーの差からトルクを解析的に導き、質量行列M(q)・コリオリ/遠心力項C(q,q̇)・重力項g(q)という構造化された運動方程式を与える。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ロボティクス
- タグ数
- 6
判断チェックリスト
- 自社の用途が「ロボット工学 / 動力学」に近いか確認する。
- 強みである「Newton-Euler法は各リンクの運動を先端から根元へ順伝播、力とトルクを先端から根元へ逆伝播する再帰計算で、逆動力学を計算量O(n)で解ける。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。