空中・水中ロボットの制御
クアッドロータの推力配分と水中機の付加質量を押さえ、地上ロボットとは別物の空中・水中制御を理解。劣駆動とカスケード構造から機体選定と制御設計の勘所まで一気に掴める。
- クアッドロータは4つの回転翼で総推力1つとロールピッチヨーの3トルクを作る劣駆動系。姿勢を傾けて初めて水平移動でき、位置制御は姿勢制御を内側に持つカスケード構造になる。
- 推力配分(control allocation)は望みの総推力・3トルクを各ロータ回転数へ割り当てる線形写像の逆問題。配分行列の疑似逆で解き、飽和や1基喪失時は再配分で対処する。
- 水中ロボットは浮力・抗力・付加質量が支配的で、加速時に周囲流体も動かすため見かけの質量が増える。抗力は速度2乗に比例し高速では強い減衰項として効く。
浮いて動く機体が地上ロボットと違う理由
車輪型や脚型の地上ロボットは、接地面から反力と摩擦を受けて動きます。これに対しクアッドロータ(4回転翼機)や自律型水中機(AUV)は、接地点を持たず、回転翼の推力やスラスタの噴流だけで自重を支えつつ空間を6自由度で動きます。支持基部が無いということは、姿勢を保つトルクも並進を生む力もすべて能動的に作り出さねばならず、しかも空中機では重力、水中機では浮力・抗力・流体の慣性が常に機体に作用し続けます。この「支えの無い剛体を流体中で動かす」という共通構造が、両者を地上ロボットの動力学(ロボットの動力学で扱う多関節マニピュレータ)とは別枠の制御問題にしています。
クアッドロータの動力学:4入力で6自由度を動かす
クアッドロータは剛体1個として、位置(3)と姿勢(3)の6自由度を持ちます。しかし独立に操作できる入力は各ロータの回転数4つだけです。4本のロータはすべて機体下向きに推力を出すため、機体座標系で真上方向の総推力1つと、機体を回す3軸トルク(ロール・ピッチ・ヨー)の合計4つの一般化力しか作れません。
クアッドロータが直接作れる一般化力(機体座標):
T : 総推力(機体 z 軸方向、常に一方向)… 1
τ_φ : ロールトルク(左右のロータ推力差)
τ_θ : ピッチトルク(前後のロータ推力差)
τ_ψ : ヨートルク(CW組とCCW組の反トルク差)
独立入力 = 4(ロータ回転数)→ 一般化力 = 4
制御したい自由度 = 6(x,y,z,roll,pitch,yaw)
→ 入力数 < 自由度数 の「劣駆動(underactuated)」系
総推力は常に機体真上向きの一方向しか出せないため、水平方向へ動くには機体を傾けて総推力ベクトルを水平成分に分解するしかありません。前へ進むにはピッチ前傾で推力を前向きに倒し、その水平分力で加速します。つまり並進運動が姿勢と強く結合しており、位置を制御するには先に姿勢を作らねばなりません。これがクアッドロータ制御の本質的な難しさで、独立入力4に対し制御対象が6自由度という劣駆動性から直接に生じます。
ロール・ピッチは向かい合うロータの推力差で機械的に理解しやすいですが、ヨー(機首方位)は推力の向きが全て真上なので推力差では作れません。ヨートルクは、プロペラが空気を回す反作用(反トルク)を使います。4基のうち2基を時計回り(CW)、2基を反時計回り(CCW)に回し、通常はCW組とCCW組の反トルクが相殺しています。CW組をわずかに増速しCCW組を減速すると反トルクの釣り合いが崩れ、その差分が機体をヨー方向に回します。ゆえにヨー応答はロール・ピッチより遅く弱いのが一般的です。
姿勢制御と位置制御のカスケード構造
劣駆動性への標準的な対処が、制御ループを内外2段に分けるカスケード構造です。内側ループが姿勢(角度)を高速に安定化し、外側ループが位置を制御して内側への目標姿勢を作ります。
横にスクロール
クアッドロータの典型的なカスケード制御:
[外側] 位置制御(低速, ~50Hz)
目標位置 → 必要な水平加速度を算出
→ その加速度を生む「目標ロール・ピッチ」と総推力Tへ変換
(水平加速に必要な推力の傾き = 目標姿勢角)
[内側] 姿勢制御(高速, ~500Hz〜1kHz)
目標姿勢 vs IMU実測姿勢 の誤差
→ 3軸トルク τ_φ, τ_θ, τ_ψ を生成(PD/PIDが定番)
→ (T, τ_φ, τ_θ, τ_ψ) を推力配分でロータ回転数へ
内側の姿勢ループは機体の回転慣性に対するトルク制御で、応答が速く外乱にも敏感なため、数百Hz〜1kHzの高い制御周期でPD(またはPID)により角度と角速度を安定化します。外側の位置ループは、目標位置との誤差から必要な水平加速度を求め、それを実現する機体の傾き(目標ロール・ピッチ角)と総推力へ翻訳して内側へ渡します。内側が外側より十分速いこと(時間スケール分離)が、この階層設計が安定に働く前提です。姿勢が先に整い、その姿勢が生む推力ベクトルで位置が追従するという因果順序が、劣駆動系を実装可能な形に落とし込みます。
推力配分(control allocation)
姿勢・位置制御が出力する望みの一般化力 (T, τ_φ, τ_θ, τ_ψ) を、各ロータが実際に出すべき推力(さらに回転数)へ割り当てる工程が推力配分(control allocation)です。各ロータ推力から一般化力への関係は、機体形状(アーム長・ロータ配置・回転方向)で決まる定数行列による線形写像になります。
配分(ミキシング)行列 B による線形関係:
[ T ] [ f_1 ]
[ τ_φ ] = B · [ f_2 ] f_i : 各ロータ推力
[ τ_θ ] [ f_3 ]
[ τ_ψ ] [ f_4 ]
B は 4×4(X型クアッドの例)。行はそれぞれ
総推力・ロール・ピッチ・ヨーへの各ロータの寄与。
制御が欲しいのは逆写像: f = B⁻¹ · [T, τ_φ, τ_θ, τ_ψ]ᵀ
ロータ数 > 4(ヘキサ/オクト)では B は横長で
一意に解けず、疑似逆 B⁺ = Bᵀ(BBᵀ)⁻¹ で
制約(推力2乗和最小など)付きの最小ノルム解を選ぶ。
標準的なXクアッド(4基)では配分行列が正方で、その逆行列を1回乗じれば各ロータ推力が一意に決まります。ロータが6基・8基と冗長な機体では入力数が一般化力の数より多く、解が無数に存在するため、疑似逆(Moore-Penrose逆)で「推力の2乗和が最小」のような最小ノルム解を選びます。この冗長性は事故耐性の源でもあり、1基が故障しても残りで必要な一般化力を再配分でき、機体を維持できます。
配分は各ロータ推力が物理限界内(推力は非負、上限あり)に収まって初めて成立します。要求トルクが大きすぎると、あるロータで負の推力や上限超過が生じ、疑似逆の解が実現不能になります(これを飽和と呼びます)。飽和時に単純にクリップすると一般化力の方向が崩れ、姿勢が乱れます。実装では、姿勢トルクを総推力より優先して割り当てる(推力を犠牲にしてでも姿勢を守る)優先度付き再配分や、実現可能領域へ投影する手法を使います。4基クアッドで1基が完全に喪失すると入力が3に減り、独立4自由度を保てなくなるため、ヨー制御を放棄して機体を回しながらロール・ピッチ・高度だけ維持する縮退制御に切り替えます。
水中ロボット:浮力・抗力・付加質量
水中ロボットの動力学は空中機と剛体である点は同じですが、支配的な力が根本的に異なります。空気中では無視できる浮力・抗力・付加質量が、水中では機体運動を決める主役になります。
| 力の種類 | 物理的起源 | 速度への依存 | 空中機との違い |
|---|---|---|---|
| 浮力 | 排除した水の重量による上向き力(アルキメデスの原理) | 速度に無依存(位置・姿勢依存) | 空気では無視できるが水中では重力と拮抗する主要力 |
| 抗力(ドラッグ) | 流体との相対運動で受ける抵抗 | 高速では速度の2乗に比例 | 空気の数百倍の密度ゆえ強い減衰項として常時作用 |
| 付加質量 | 機体加速時に周囲流体も加速させる慣性 | 加速度に比例(見かけの質量増) | 空気では微小、水中では機体質量と同オーダーに達する |
浮力は機体が押しのけた水の重量ぶんの上向きの力で、重心と浮心(浮力の作用点)の位置関係が姿勢の安定性を決めます。浮心が重心より上にあれば復元モーメントが働き、機体は自然に水平復帰する受動安定を持ちます。多くのAUVはこの配置で、姿勢を保つ制御負荷を機械設計で下げています。抗力は流体との相対速度に対する抵抗で、低速では速度に比例、実用的な移動速度では速度の2乗に比例します。空気の約800倍という水の密度により抗力は非常に強く、推進を止めればすぐ減速する(強い自然減衰)一方、高速航行には大きな推力を要します。
付加質量(added mass)は水中動力学に固有で最も誤解されやすい概念です。機体を加速するとき、機体自身だけでなく周囲の水も一緒に加速させねばならず、その水の慣性が機体に反作用します。結果として運動方程式上の見かけの質量が実質量より増え、水中では付加質量が機体質量と同程度に達することも珍しくありません。
水中剛体の運動方程式(並進の1軸を模式化):
(m + m_a)·v̇ + d·v·|v| = T_thrust ± F_buoy
m : 機体の実質量
m_a : 付加質量(加速時に動かす周囲流体の慣性)
d : 抗力係数(形状・流体密度で決まる)
v·|v|: 速度2乗抗力(符号は速度方向)
F_buoy: 浮力と重力の差(ネット浮力)
→ 慣性項が (m + m_a) に増え、v·|v| の非線形減衰が
常に効くのが空中機との決定的な違い。
付加質量はスカラーではなく、運動方向ごとに異なるテンソル量です。細長いAUVを前後(長手方向)に動かすときは押しのける水が少なく付加質量は小さいのに対し、横方向(幅方向)や上下に動かすと大量の水を動かすため付加質量が大きくなります。この異方性ゆえ、同じ推力でも進む向きで加速度が変わり、水中機の制御則は方向別の慣性を織り込む必要があります。空中機のドラッグにも同様の異方性はありますが、水中ほど支配的ではありません。
非ホロノミック制約
空中・水中の移動体を語るとき避けて通れないのが非ホロノミック制約です。これは「速度(運動の向き)に課される、位置座標だけでは積分して消せない拘束」を指します。代表例は車両で、横滑りせず前進・後退と旋回しかできない車輪は「車体の横方向へは直接動けない」という速度拘束を持ちます。この拘束は瞬間的な移動方向を制限するだけで、到達可能な位置そのものは制限しない(縦列駐車のように切り返せば横の目標へ行ける)のが特徴です。
ホロノミック vs 非ホロノミック:
ホロノミック : 拘束が位置座標だけの式で書ける
→ 動ける方向 = 到達できる位置 が一致
例) 全方向移動できるクアッドロータの位置
非ホロノミック : 拘束が速度を含み、積分して
位置だけの式に落とせない
→ 瞬間の動ける方向は制限されるが
到達可能な位置は制限されない
例) 車の横移動不可、固定翼機の
「止まれず前進し続ける」拘束
クアッドロータは総推力の向きを姿勢で自由に倒せるため、位置に関しては任意方向へ動けるホロノミックに近い挙動を取れます(ただし前述のとおり、瞬間的には姿勢を作る時間差があり厳密には劣駆動)。一方、固定翼機や魚雷型AUVは「その場旋回や横移動ができず、進行方向へ動きながらしか向きを変えられない」典型的な非ホロノミック系です。この違いは経路計画に直結します。非ホロノミック機の経路は、任意の2点を直線で結べず、最小旋回半径を満たす曲線(Dubins経路など)で構成する必要があり、動作計画(RRT・PRM)でも拘束を満たす運動だけを木に接続する専用の拡張が要ります。
- クアッドロータの劣駆動性: 独立入力4(ロータ回転数)に対し制御対象6自由度。総推力は機体真上一方向のみで、水平移動は機体を傾けて実現。
- カスケード制御: 内側=姿勢(高速PID)、外側=位置(低速、目標姿勢を生成)。時間スケール分離が安定の前提。
- 推力配分: 配分行列Bで一般化力↔各ロータ推力を対応づけ、逆行列(冗長機は疑似逆で最小ノルム解)。飽和時は姿勢優先で再配分。
- 水中の3大要素: 浮力(速度非依存・受動安定)、抗力(速度2乗・強い減衰)、付加質量(加速時に周囲流体も動かし見かけ質量増、方向で変わる)。
- 非ホロノミック制約: 速度に課され位置だけでは積分消去できない拘束。到達可能位置は制限しないが瞬間の移動方向を制限。固定翼・魚雷型AUVが該当。
まとめ
空中・水中ロボットは、接地面を持たず流体中で支えなしに6自由度を動かす点で地上ロボットと本質的に異なります。クアッドロータは独立入力4に対し制御対象6自由度の劣駆動系で、総推力が機体真上一方向しか向かないため、水平移動には機体を傾けて推力を分解する必要があり、位置制御が姿勢制御を内側に持つカスケード構造として実装されます。姿勢・位置制御が出す望みの一般化力は、配分行列とその逆(冗長機では疑似逆による最小ノルム解)を介して各ロータ推力へ割り当てられ、飽和や1基喪失には姿勢を優先する再配分で対処します。水中機では浮力・抗力・付加質量が支配的で、加速時に周囲流体まで動かす付加質量が見かけの慣性を増やし、速度2乗の抗力が強い減衰として常時働きます。さらに固定翼機や魚雷型AUVは速度に拘束が課される非ホロノミック系であり、経路計画そのものが地上の全方向移動体とは別物になります。これら流体中の力学と拘束の理解が、機体形式の選定と制御設計を正しく行う出発点になります。
ロボティクスの記事ガイド
空中・水中ロボットの制御を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ロボティクス
比較で見る軸
難易度: advanced / カテゴリ: ロボティクス / タグ数: 6
導入後に効く点
推力配分(control allocation)は望みの総推力・3トルクを各ロータ回転数へ割り当てる線形写像の逆問題。配分行列の疑似逆で解き、飽和や1基喪失時は再配分で対処する。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ロボティクス
- タグ数
- 6
判断チェックリスト
- 自社の用途が「ロボティクス / ドローン」に近いか確認する。
- 強みである「クアッドロータは4つの回転翼で総推力1つとロールピッチヨーの3トルクを作る劣駆動系。姿勢を傾けて初めて水平移動でき、位置制御は姿勢制御を内側に持つカスケード構造になる。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。