notes
Control

TOPP-RA

幾何経路 q(s) に対して速度・加速度・トルク制約を満たす時間最短パラメータ化 s(t) を求めるアルゴリズム (Pham & Stasse 2018)

要点: 幾何経路 が与えられたとき、速度・加速度・トルク制約を満たす時間最短の を計算する。到達可能集合を LP で解く方式で、TOPP-NI より特異点に強い (Pham & Stasse, IEEE T-RO 2018)。

入出力#

項目内容
入力経路 (config space) + 制約群
出力時間最短 (経路上の進行速度)
計算量 (N = 離散点数、M = 制約数)
実装pip install toppra (Python)、C++ 版もあり
論文Pham & Stasse, "A New Approach to Time-Optimal Path Parameterization Based on Reachability Analysis", IEEE T-RO 2018

扱える制約#

  • Velocity:
  • Acceleration:
  • Torque (動力学モデル込み):
  • 2 階微分で書ける任意の制約 (力、接触、ジャーク等)

アルゴリズム#

位相平面 上で:

  1. 経路を N 点に離散化
  2. 各点で前方到達可能集合 (forward reachable set) を LP で計算
  3. 後方到達可能集合も同様
  4. 両者の交わりが実行可能な の範囲
  5. その上限を辿ると時間最短の
  6. 積分して 、経路と合成して

TOPP-NI (Numerical Integration) は singular arc の処理で発散しやすい。RA 版は LP ベースで数値的にロバスト。

planner との分離#

モーションプランナ (RRT / PRM / 可視グラフ) → 幾何経路 q(s)
                                                 ↓
                                            TOPP-RA
                                                 ↓
                                          時間最短軌道 q(t)
                                                 ↓
                                          軌道追従 (FF + PID)

planner はコリジョン回避と可到達性のみ担当し、速度・加速度・トルクの物理限界は TOPP-RA が担当する。

制約モデルの与え方#

  • 静的制約 (速度・加速度上限) → yaml 等で機構ごとに指定
  • 動的制約 (トルク・接触力) → 動力学モデル + アクチュエータ性能
  • 摩擦は詳細モデル化せず上限値を実測して与えることが多い (同定コスト回避)
  • 経路上の姿勢 を別途定義することもできる (向きに制約がある機体)

Python 使用例#

import toppra as ta
import toppra.constraint as constraint
import toppra.algorithm as algo
import numpy as np

path = ta.SplineInterpolator(np.linspace(0, 1, 5), waypoints)

vlim = np.array([[-vmax, vmax]] * dof)
alim = np.array([[-amax, amax]] * dof)
pc_vel = constraint.JointVelocityConstraint(vlim)
pc_acc = constraint.JointAccelerationConstraint(alim)

instance = algo.TOPPRA([pc_vel, pc_acc], path, solver_wrapper='seidel')
jnt_traj = instance.compute_trajectory()

ts = np.linspace(0, jnt_traj.duration, 100)
q, qd, qdd = jnt_traj(ts), jnt_traj(ts, 1), jnt_traj(ts, 2)

他手法との比較#

アルゴリズム手法特徴
TOPP-NI数値積分 (forward/backward)古典的、singular arc に弱い
TOPP-RA到達可能集合 + LPロバスト、標準的
Ruckigオンライン jerk-limitedリアルタイム、jerk 制約向き、経路は入力しない
BVP shooting最適制御汎用だが計算コスト高い

Ruckig と TOPP-RA は用途が異なる。Ruckig は「今の状態から目標へ jerk-limited で行く」オンライン軌道生成、TOPP-RA は「与えられた幾何経路を時間最短で辿る」オフライン最適化。組み合わせも可能 (planner → TOPP-RA → 実行時に Ruckig で追従調整)。

関連#

最終更新:

On this page