軌道計画(スプライン・多項式補間)
経由点をガクガク動かさず滑らかに結ぶための多項式・スプライン設計を原理から整理。加加速度制約と時間最適化のトレードオフが分かります。
- 1.軌道計画は経由点を結ぶ幾何パス(path)に加え、各点をいつ通過するかという時間割付(timing)まで決める問題。位置だけでなく速度・加速度・加加速度(jerk)の連続性が滑らかさを決める。
- 2.3次多項式は加速度が経由点で不連続、5次多項式・3次スプラインは加速度まで連続にできる。台形速度プロファイルは加速度が階段状に変化するが、S字プロファイルは加加速度を明示的に制限して機構への衝撃を抑える。
- 3.時間最短化と滑らかさは表裏の関係。動作時間を切り詰めるほど加速度・加加速度の要求ピークが増え、アクチュエータの出力限界や振動励起との間でトレードオフになる。
パス計画と軌道計画は別問題
ロボットアームや移動ロボットの動作生成は、しばしば2段階に分かれます。まず障害物を避けて経由点の並びを決める「パス計画」(幾何学的な経路のみを扱い、時間の概念を持たない)、次にその経路上を実際にいつ・どの速度で通過するかを決める「軌道計画(トラジェクトリプランニング)」です。軌道は位置の時間関数 q(t) として表され、その1階微分が速度 q'(t)、2階微分が加速度 q''(t)、3階微分が加加速度(jerk)q'''(t) になります。軌道計画の本質は、この q(t) を経由点群という離散的な拘束条件から滑らかな連続関数として構成することです。
なぜ滑らかさが要るのかは物理的に明確です。加速度が不連続に飛ぶ点では、理想的にはモータートルクが階段状に変化し、実機では有限の応答帯域・ギアのバックラッシ・構造のたわみが振動として励起されます。加加速度が大きいほど、乗員や積載物への衝撃、機構の疲労、追従誤差も増えます。したがって軌道計画は「経由点を通る」という幾何条件と「なめらかに動く」という力学条件を同時に満たす関数を設計する問題です。
3次多項式補間とその限界
もっとも単純な区間補間は3次多項式です。始点・終点の位置と速度という4つの条件に対し、係数が4個ある3次式 q(t) = a0 + a1 t + a2 t² + a3 t³ はちょうど過不足なく決まります(線形方程式を解くだけ)。
区間ごとの3次多項式(1区間の例):
拘束条件(4つ):
q(0) = q0 q(T) = qf
q'(0) = v0 q'(T) = vf
未知数(4つ): a0, a1, a2, a3
→ 4元連立1次方程式で一意に解ける
複数の経由点を3次多項式でつなぐ場合、各区間で始点速度・終点速度を指定すれば連続な軌道が作れますが、素朴に「経由点で速度ゼロ」とすると経由点ごとに一旦静止してしまい非効率です。速度を非ゼロに設定して区間をつなぐことは可能ですが、加速度は各区間内で一定の傾き(線形)にしかならず、区間の境界で加速度が不連続に飛びます。これは3次式の2階微分が1次式(区間ごとに勾配が違う)にしかならないためで、原理的な限界です。
加速度が経由点で不連続に飛ぶということは、その瞬間に要求トルクが階段状に変化することを意味します。理想的な剛体・理想的なアクチュエータであれば何の問題もありませんが、実機では有限の電流応答・ギアの遊び・アームのたわみがあるため、この不連続点が高周波振動の励起源になります。精密位置決めや高速搬送では、この振動が整定時間を延ばし、加工精度や搭載物の安定性を損ないます。
5次多項式と3次スプラインで加速度まで連続にする
加速度まで連続にするには、拘束条件を増やして次数を上げる必要があります。各経由点で位置・速度・加速度の3条件を指定するなら、1区間あたり6つの拘束条件が必要になり、5次多項式 q(t) = a0 + a1 t + ... + a5 t⁵(係数6個)がちょうど条件数と一致します。5次多項式は2階微分(加速度)まで区間内で滑らかな2次式となり、始点・終点で加速度の値を指定して隣接区間と一致させれば、軌道全体で加速度連続(C²連続)が実現します。
一方、多数の経由点を通す場合に実務でよく使われるのが3次スプラインです。各区間は3次多項式ですが、3次多項式そのものの4自由度を使い切るのではなく、区間同士で位置・速度・加速度が一致するという拘束を課すことで、区間ごとに独立には決めず全区間を連立して解きます。
3次スプラインの拘束条件(内部経由点 i、区間 i-1 と i の境界):
位置: Q_{i-1}(t_i) = Q_i(t_i) = q_i ← 経由点を通る
速度連続: Q'_{i-1}(t_i) = Q'_i(t_i) ← 速度が滑らかにつながる
加速度連続: Q''_{i-1}(t_i) = Q''_i(t_i) ← 加速度が滑らかにつながる
端点(両端)の速度 or 加速度を追加で指定 → 連立方程式が一意に解ける
| 補間方式 | 連続性 | 1区間の自由度 | 特徴・用途 |
|---|---|---|---|
| 3次多項式(区間独立) | 位置・速度連続、加速度は不連続 | 4(位置2・速度2) | 実装が単純。経由点で衝撃が残る |
| 5次多項式 | 位置・速度・加速度連続(C²) | 6(位置・速度・加速度各2) | 始終点の加速度まで指定できる単区間向き |
| 3次スプライン(連立) | 全区間で位置・速度・加速度連続 | 区間ごと4だが全体を連立 | 多経由点を1本の滑らかな曲線で通す標準手法 |
| B-スプライン | 次数に応じたCᵏ連続、経由点を必ずしも通らない | 制御点で局所的に調整 | 局所修正性が高くCAD/CGでも標準 |
3次スプラインは、各区間の境界で位置・速度・加速度が一致するという条件を全区間分並べると、未知数(各区間の多項式係数、または等価に各経由点での速度・加速度)に対して連立1次方程式が組め、三重対角行列を解く形に帰着します。これは数値的に安定かつ高速に解けるため、多点経由の軌道生成で広く使われます。
台形速度プロファイルとS字(加加速度制限)プロファイル
多項式補間が「位置の関数形」から出発するのに対し、産業用ロボットやCNCで広く使われるのが速度プロファイルから設計する方式です。もっとも基本的なのが台形速度プロファイルで、加速→定速→減速の3区間から成り、加速度は一定値を取ります。
台形速度プロファイル(3フェーズ):
フェーズ1(加速): 速度が0から v_max まで一定加速度 a_max で増加
フェーズ2(定速): v_max を維持
フェーズ3(減速): v_max から0まで一定加速度 -a_max で減少
移動距離が短い場合はフェーズ2が消え「三角形速度プロファイル」になる
台形プロファイルは実装が単純ですが、加速度自体は各フェーズの切り替わり(速度線図の角)で瞬時にステップ変化します。これは前述の3次多項式と同じ弱点で、**加速度は連続でも加加速度は無限大(デルタ関数的)**になり、機構への衝撃は解消されません。
これを解決するのが**S字プロファイル(加加速度制限プロファイル、jerk-limited profile)**です。加速度自体にも台形形状を持たせ、加加速度を有限値 j_max に制限した7フェーズ(加加速度一定で加速度が立ち上がる→加速度一定→加加速度が逆符号で加速度が定速に収束→…と対称に7段階)で速度を変化させます。
S字(7フェーズ)プロファイルの加加速度パターン:
フェーズ1: jerk = +j_max (加速度が0からa_maxへ立ち上がる)
フェーズ2: jerk = 0 (加速度 a_max を維持、速度が線形に増加)
フェーズ3: jerk = -j_max (加速度がa_maxから0へ収束、速度が目標値に漸近)
フェーズ4: jerk = 0 (定速走行)
フェーズ5〜7: フェーズ1〜3の減速版(符号反転で対称)
台形速度プロファイルは加速度がステップ状に変化するため、指令上は滑らかに見えても実際の駆動系には衝撃的なトルク要求が生じます。S字プロファイルは加加速度を有限値に制限することで、加速度自体を連続関数にし、機構への衝撃・共振励起・搭載物へのダメージを大幅に抑えます。半導体製造装置や医療ロボット、エレベータの速度制御など「揺れ・振動が精度や乗り心地に直結する」用途では、S字プロファイル(またはさらに滑らかな高次プロファイル)がほぼ標準です。トレードオフは、同じ最大速度・最大加速度でも、加加速度を制限する分だけ動作時間が台形プロファイルより長くなることです。
時間最適化と滑らかさのトレードオフ
軌道計画には常に「できるだけ速く動きたい」という時間最適化の要求と、「できるだけ滑らかに動きたい」という滑らかさの要求が同居し、この二つは本質的にトレードオフの関係にあります。
移動距離と経由点列が固定されているとき、動作時間を切り詰めれば、有限時間内により大きな速度変化を詰め込む必要が生じ、必要な最大加速度・最大加加速度は増大します。逆に加加速度の上限を厳しく制限すれば、同じ距離を移動するのに必要な時間は必ず伸びます。これはS字プロファイルの各フェーズの継続時間が a_max と j_max の比で決まることからも分かります。
時間最小化問題の典型的な定式化:
最小化: 総動作時間 T
制約: |q'(t)| ≤ v_max (速度制約)
|q''(t)| ≤ a_max (加速度制約 = トルク・推力の限界に対応)
|q'''(t)| ≤ j_max (加加速度制約 = 衝撃・振動の限界に対応)
q(0) = q_start, q(T) = q_goal, 経由点をすべて指定時刻までに通過
多くの実装では、まず速度・加速度・加加速度それぞれの制約を満たす最短時間を区間ごとに計算し、そのうち最も厳しい(時間のかかる)制約が支配的な区間の所要時間を採用します。産業用ロボットの多くは、各関節軸で独立にこの時間最小化を行った後、全軸のうち最も遅い軸の所要時間に他の軸を同期させる(タイムスケーリング)ことで、複数軸が同時に動作を終える協調動作を実現します。
- 3次多項式は位置・速度連続だが加速度不連続。5次多項式・3次スプラインは加速度まで連続にできる。
- 3次スプラインは区間ごとの多項式係数を全区間で連立して解く(三重対角形式で数値的に効率よく解ける)。
- 台形速度プロファイルは加速度がステップ変化=加加速度が無限大。S字プロファイルは加加速度を
j_maxに制限し衝撃・振動を抑える。 - 動作時間を短縮するほど必要な最大加速度・最大加加速度が増大し、アクチュエータの出力限界や機構振動との間にトレードオフが生じる。
- 多軸ロボットでは各軸を個別に時間最適化した後、最も遅い軸に他軸を同期させるタイムスケーリングで協調動作を作る。
まとめ
軌道計画は、経由点という離散的な幾何条件から、位置・速度・加速度・加加速度が求める滑らかさの水準を満たす連続関数 q(t) を構成する問題です。3次多項式は実装が単純な反面、加速度が経由点で不連続になり、5次多項式や3次スプラインを使うことで加速度まで連続な軌道が得られます。速度プロファイルの観点からは、台形速度プロファイルが加速度をステップ変化させてしまうのに対し、S字(加加速度制限)プロファイルは加加速度そのものに上限を課すことで機構への衝撃を抑えます。そしてどの方式を選んでも、動作時間を切り詰めることと軌道を滑らかに保つことは表裏一体のトレードオフであり、速度・加速度・加加速度それぞれの制約のうち最も厳しいものが実際の所要時間を決めます。この時間最適化と滑らかさの両立こそが、ロボットアームの高速ピッキングから精密搬送、協調多軸動作まで、実用的な軌道生成アルゴリズム設計の中心課題です。
ロボティクス Article
軌道計画(スプライン・多項式補間)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ロボティクス
比較で見る軸
難易度: advanced / カテゴリ: ロボティクス / タグ数: 6
導入後に効く点
3次多項式は加速度が経由点で不連続、5次多項式・3次スプラインは加速度まで連続にできる。台形速度プロファイルは加速度が階段状に変化するが、S字プロファイルは加加速度を明示的に制限して機構への衝撃を抑える。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ロボティクス
- タグ数
- 6
判断チェックリスト
- 自社の用途が「ロボティクス / 軌道計画」に近いか確認する。
- 強みである「軌道計画は経由点を結ぶ幾何パス(path)に加え、各点をいつ通過するかという時間割付(timing)まで決める問題。位置だけでなく速度・加速度・加加速度(jerk)の連続性が滑らかさを決める。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。