Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Differential Flatness

  • 別名: flatness, differentially flat system, flat outputs
  • カテゴリ: Planning & manipulation › Trajectory optimisation
  • タグ: nonlinear-control, trajectory-generation, quadrotor, motion-planning, feedforward-control, aerial-robotics

一部の非線形システムが持つ性質で、その状態全体と入力を少数の平坦出力とその微分の関数として書けるため、軌道計画と制御が大幅に簡単になる。

定義

微分平坦性(differential flatness)は、ある種の非線形動的システムが持つ構造的な性質であり、Michel Fliess、Jean Lévine、Philippe Martin、Pierre Rouchon によって 1990 年代に定式化された。平坦出力と呼ばれ、制御入力と同じ数を持つ出力の組が存在し、すべての状態とすべての入力をこれらの出力とその有限階の時間微分の関数として表せるとき、そのシステムは微分平坦である。実質的には、平坦出力が時間とともにどう動くかを選べば、システム全体がどう動かなければならないか、そしてどの入力が必要かが完全に決まる。

これにより、難しい計画問題がより簡単な問題に変わる。プランナは入力を探索して非線形ダイナミクスを積分する代わりに、ウェイポイントを通る多項式やスプラインなど、十分に滑らかな任意の曲線を平坦出力に対して描き、それに対応する状態と入力を直接計算できる。入力制限などの制約は、曲線の微分に対する制約になる。フィードフォワード指令も同じ計算から得られ、フィードバックコントローラは小さなずれを補正するだけでよい。

クアッドロータはロボティクスで最もよく知られた例である。Mellinger と Kumar は 2011 年に、3 次元の位置とヨー角を平坦出力とすると、クアッドロータが微分平坦であることを示した。推力は位置の 2 階微分から、姿勢は必要な加速度の方向から、機体角速度とトルクはさらに高階の微分から得られる。クアッドロータの軌道がミニマムスナップ多項式として生成されることが多いのはこのためである。スナップ、すなわち位置の 4 階微分は、トルク入力に直接結びついている。ほかの平坦なシステムには、一輪車型の移動ロボット、運動学的な車両モデル、トレーラーを牽引する車両がある。

平坦性には限界がある。多くのシステムは平坦ではなく、任意の非線形システムが平坦かどうかを判定したり、その平坦出力を見つけたりするための一般的な方法は存在しない。平坦性は正確なモデルにも依存しており、空気抵抗、ロータの効果、その他のモデル化されていない項によって厳密な関係は崩れる。平坦なシステムは、ある種の動的状態フィードバックによって線形システムに変換できるため、フィードバック線形化と密接に関係している。

重要な理由

微分平坦性により、プランナは高コストな非線形最適化ではなく閉形式の計算で動的に実行可能な軌道を生成できる。これは 1 秒間に何度も再計画しなければならない機敏な機体や車両にとって重要である。標準的なクアッドロータの軌道生成と制御、そして車輪型ロボットの多くのプランナの基盤となっている。

主な用途

  • クアッドロータの軌道生成 — ウェイポイントを通るミニマムスナップ多項式による計画
  • 空中ロボットのフィードフォワード制御 — 計画した経路から姿勢と推力の目標値を計算する
  • 車輪型移動ロボット — 自動車型や差動駆動の車両のために実行可能な経路を計画する
  • トラクタ・トレーラーシステム — トレーラーを牽引する車両の操縦を計画する
  • 編隊飛行 — 複数のドローンのために協調した実行可能な軌道を生成する

実際の使われ方

ドローンのチームは通常、経路を一連のウェイポイントとして計画し、時間と連続性の制約のもとでスナップまたはジャークを最小化する位置とヨーの区分多項式を当てはめ、曲線に沿って微分を評価することで推力と機体角速度の制限を確認する。各制御ステップでは、平坦性写像が目標の位置、速度、加速度、ジャーク、ヨーを目標の姿勢、推力、角速度に変換し、それらが幾何学的姿勢コントローラまたはカスケード型の姿勢コントローラに入力される。飛行試験で抗力やダウンウォッシュによる追従誤差が見られた場合、エンジニアは平坦性に基づく構造を保ったまま、モデルに抗力項を加えるか、補正を学習させる。

よくある誤解

  • すべてのロボットは微分平坦である — 多くのシステムはそうではなく、あるシステムの平坦出力を見つけるのは難しいことが多い
  • 平坦性があればフィードバックは不要になる — 平坦性が与えるのはフィードフォワードの目標値であり、外乱やモデル誤差に対処するにはやはりフィードバックが必要である
  • 平坦性とフィードバック線形化は同じものである — 両者は密接に関係しているが、平坦性は主に計画に使われるシステムの性質であり、フィードバック線形化は制御設計の手法である

知っておくべき人

  • ドローンや空中ロボティクスのエンジニア
  • 動的な機体や車両を扱うモーションプランニングの研究者
  • 軌道追従コントローラを設計する制御エンジニア
  • 非線形制御を学ぶ大学院生

関連技術

  • ミニマムスナップ軌道生成(Minimum-Snap Trajectory Generation)
  • フィードバック線形化(Feedback Linearization)
  • 軌道最適化(Trajectory Optimization)
  • 幾何学的制御(Geometric Control)
  • モデル予測制御(Model Predictive Control)
  • 多項式スプライン(Polynomial Splines)

関連用語

  • Trajectory Planning
  • Feedback Linearization
  • UAV
  • Model Predictive Control

関連プロジェクト

  • gym-pybullet-drones: PyBullet Gymnasium environments for single- and multi-agent drone reinforcement learning
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
  • Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines

動画

  • lecture18 final clip3 differentialflatness: underactuated

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。