回答:
最も単純なコントローラーは、線形状態フィードバックコントローラーです。基本的に、ゲインを必要とする4つの異なる状態があります。これらは、傾斜角、傾斜速度、速度、位置です。
LQR(線形2次レギュレータ)は、これらのゲインを設計する方法です(システムの線形化された状態空間表現を取得した後)。状態空間表現がない場合(おそらくない場合)、運動方程式を取得してパラメーターを測定できます。状態空間表現がない場合、ゲインを手動で調整する必要があります(LQRや極配置などの他の方法は使用しません)。
傾斜角、位置/速度、およびホイールトルクがすべて前方に向けられていると仮定すると(正の場合)、傾斜角と傾斜速度にプラスのゲイン、位置と速度にプラスのゲインが必要です。
傾斜角と傾斜率のゲインから始めます。これにより、最初にバランスが取れます。バランスが保たれたら、ゲインを追加して位置と速度を制御できます。不安定な場合は、チルトレートのゲインを上げます(システムの減衰に役立ちます)。
位置/速度制御は、両方の状態をゼロに制御します。他の値に制御するには、コントローラに送る前に状態をエラーに置き換えることにより、参照追跡コントローラが必要です(現在の速度-速度参照など)。
ヨー制御は独立して行うことができます(メインバランス/速度/位置コントローラーに加えられたホイールトルクの違いにより)。
制御エンジニアリング/理論のスキルがわからないため、PIDコントローラーから始めることをお勧めします。これは単純なコントローラーであり、多くのコード実装があります。PIDの欠点は、おそらく手動でパラメーターを調整するのに時間がかかることです。
数年前、私はそれをオドメトリーに基づいて二輪のレゴマインドストームロボットを制御するために使用し、十分に機能しました。動き回らせるには、設定点で遊ぶ必要があります。
もちろん、後ほど、前述のLQRなどのより高度な制御法則を使用して、コントローラーの品質(安定性、堅牢性など)を改善できます。
がんばろう!