📙 ロボットの姿勢制御¶
質問者: Shigeru Morifuku
回答者: Claude Opus 5.5
回答日: 2026/10/6
免責: 回答者は AI であり、間違えることがあります。
🟩 Q: 原理的には三半規管は一個あれば、人間は姿勢を保てる?2個ある理由は?¶
結論から言うと、原理的には片側だけでも姿勢は保てます。ただし「2個ある」ことには明確な意味があります。
🟨 片側だけで足りる理由¶
片耳の三半規管は前・後・外側の3本がほぼ直交しているので、片側だけで3軸すべての回転を検出できます。センサーとして見れば、片側で情報は揃っています。
実際、片側の前庭機能を失った人(前庭神経炎や手術後など)は、発症直後こそ激しいめまいや転倒傾向に苦しみますが、数週間〜数か月で脳が適応し(前庭代償)、日常生活ではほぼ普通に立ったり歩いたりできるようになります。
なお、姿勢維持は前庭だけでなく、視覚と体性感覚(足裏や関節からの情報)も使っています。また、重力に対する傾きを検知するのは三半規管ではなく、同じ内耳にある耳石器(卵形嚢・球形嚢)の役割です。三半規管は回転(角加速度)の担当です。
🟨 2個ある理由¶
① プッシュプル(差動)方式
左右の三半規管は同一平面上でペアになっています(左外側–右外側、左前–右後、右前–左後)。頭を右に回すと右側の神経発火が増え、左側は減ります。脳はこの差分を読んでいます。電子回路の差動入力と同じで、感度が上がり、体温変化など両側に同時に乗るノイズを打ち消せます。
② 片側だけでは苦手な方向がある
神経の発火頻度は、安静時の値から上には大きく増やせますが、下は0で頭打ちになります(Ewaldの第2法則)。つまり片側だけでは「自分側への回転」は得意でも、「反対側への速い回転」の検出が不十分です。両側あることで、どちら向きの回転でも、興奮側が必ず存在します。片側を失った人でも、速く頭を振ると患側への回転で視線がぶれる(ヘッドインパルス検査で陽性)のはこのためです。
③ 冗長性
片側が壊れても、代償によって機能を維持できます。
④ 発生学的な理由
脊椎動物は左右対称の体の設計なので、内耳も左右一対で作られるという側面もあります。
ちなみに、片側を失った直後に激しくめまいがするのも差動方式の副作用です。左右の安静時発火のバランスが崩れると、脳はそれを「健側に向かって回り続けている」と解釈してしまいます。差分で読む仕組みなので、片側が急に無くなると誤った信号になるわけです。
🟩 Q: 2足歩行ロボットの三半規管はどう実現されている?¶
基本は IMU(慣性計測装置) という1個の部品で、人間の前庭器官とかなり対応関係があります。
🟨 センサーの対応関係¶
人間 |
ロボット |
測るもの |
|---|---|---|
三半規管 |
ジャイロセンサー(3軸) |
角速度(回転) |
耳石器 |
加速度センサー(3軸) |
並進加速度+重力の向き |
足裏・関節の感覚 |
足裏の力センサー、関節エンコーダ |
接地力、関節角度 |
視覚 |
カメラ、LiDAR |
外界に対する位置・姿勢 |
市販ロボットや研究用ロボットのほとんどは、ジャイロと加速度センサーを1チップにまとめたMEMS IMUを胴体(骨盤付近)に積んでいます。高精度が必要な研究機では、光ファイバージャイロなどの高価なものが使われることもあります。
MEMSジャイロは、微小な振動子を一定方向に振動させておき、回転したときに生じるコリオリ力による変位を静電容量で検出します。多くの製品は2つの振動子を逆位相で振動させ、その差分を取る構造になっています。これにより外部からの振動や衝撃を打ち消しているので、前回の話のプッシュプル方式と同じ発想です。
🟨 センサーフュージョンが肝¶
ジャイロも加速度センサーも、単体では姿勢を正確に出せません。
ジャイロは角速度を積分して角度を出すので、短時間なら正確ですが、誤差が蓄積してドリフトします。加速度センサーは重力の方向から傾きを出せるので長期的には安定しますが、歩行中の衝撃や加速が混ざると短期的にノイズが大きくなります。
そこで両者を組み合わせます。最も単純なのが相補フィルタです。
// 相補フィルタ(ピッチ角の例)
// gyro_y: 角速度[rad/s], ax, az: 加速度[m/s^2], dt: 周期[s]
double update_pitch(double pitch, double gyro_y,
double ax, double az, double dt)
{
constexpr double alpha = 0.98; // ジャイロ寄りの重み
double pitch_gyro = pitch + gyro_y * dt; // 短期: ジャイロ積分
double pitch_accel = std::atan2(-ax, az); // 長期: 重力方向
return alpha * pitch_gyro + (1.0 - alpha) * pitch_accel;
}
ジャイロを高域通過、加速度を低域通過として混ぜているわけです。実用機では、拡張カルマンフィルタ(EKF)やMadgwickフィルタなどで、クォータニオンを使って3軸の姿勢を推定するのが一般的です。
🟨 人間の脳と同じく、IMUだけには頼らない¶
本格的な2足歩行ロボットでは、IMUに加えて関節角度から計算した脚の運動学(どちらの足が接地しているか、そこから胴体がどう動いたか)もEKFに統合して、胴体の姿勢・速度・位置を推定します。これは人間が前庭+体性感覚を統合しているのとほぼ同じ構図です。さらにカメラやLiDARでSLAMを行い、長期的な位置のずれを補正します(視覚の役割)。
この推定値をもとに、ZMP(ゼロモーメントポイント)制御、キャプチャポイント制御、モデル予測制御、最近では強化学習で得た制御ポリシーなどが、足の着地位置や関節トルクを決めて転倒を防いでいます。
🟨 左右2個は必要か¶
ロボットのIMUは通常1個です。1個で3軸×(角速度+加速度)の6自由度が測れるので、人間の左右差動のような構成は不要です。前述のとおり、差動による雑音除去はチップ内部で済ませています。冗長性が要求される用途(航空機など)では複数搭載しますが、2足歩行ロボットでは、むしろ足裏センサーや関節情報との統合で冗長性を確保している、と言えます。
🟩 Q: ロボットが一輪車に乗るとして、方向を切るときは、腕のバランスで車輪を傾けて、コリオリ力で曲がる?¶
半分正解です。「腕(上体)で傾けて、傾けた側に曲がる」という流れは合っていますが、主役はコリオリ力というより ジャイロ効果(歳差運動) と ひねりの反作用 です。整理すると、一輪車の旋回には主に3つの仕組みが絡んでいます。
🟨 ① 上体のひねりによる反作用(低速では主役)¶
人間の一輪車乗りがまず使うのがこれです。上体や腕を右にひねると、角運動量保存(作用・反作用)によって下半身と車輪が左に回ります。腕を大きく振るのは、腕を遠くに伸ばすほど慣性モーメントが大きくなり、少ない動きで大きな反作用トルクを得られるからです。
一輪車は自転車と違ってハンドルがないので、 車輪の向きを変える手段が実質これしかない のが特徴です。
🟨 ② 傾き+ジャイロ効果(歳差運動)¶
回転している車輪は、車軸方向(進行方向に対して横向き)に角運動量 \(\vec{L}\) を持っています。車体を左に傾けると、重力が接地点まわりにトルク \(\vec{\tau}\) を生み、そのトルクは進行方向の後ろ向きになります。
なので、\(\vec{L}\) が水平面内で回転し、結果として車輪の向きが 傾けた側(左)に回ります 。これが歳差運動です。
ちなみに、歳差運動を車輪と一緒に回る座標系から見ると、車輪の各部分に働くコリオリ力の合計として説明できます。なので「コリオリ力で曲がる」という直感は、物理的にまったく的外れというわけではありません。ただ、一般的にはジャイロ効果として扱います。
注意点として、一輪車は速度が遅く車輪も軽いので、ジャイロ効果はそれほど大きくありません。旋回のきっかけとしては①の方が支配的です。
🟨 ③ 実際に軌道を曲げているのは摩擦力¶
①②は「車輪の向き」を変える仕組みですが、重心の軌道を曲げる向心力は、 タイヤと地面の横方向の摩擦力 が担っています。傾きは、この向心力と重力のモーメントを釣り合わせて、旋回中に転ばないための姿勢です(バイクのコーナリングと同じ)。
🟨 左右バランスと旋回は切り離せない¶
一輪車で横に倒れそうになったとき、立て直す方法は「倒れる方向に車輪を向けて、車輪を重心の下に戻す」ことです。つまり 横方向のバランス制御=旋回制御 になっています。自転車でも同じで、倒れる側にハンドルを切って立て直しています。そのため、まっすぐ走っているつもりでも、実際は細かく蛇行しています。
🟨 ロボットではどうしているか¶
ロボットでは、人間のように腕をひねる代わりに、 リアクションホイール(フライホイール) を内蔵するのが定番です。
例えば村田製作所の「ムラタセイコちゃん」は、前後方向のバランスは車輪の倒立振子制御で、左右方向は胴体内のフライホイールを加減速させて、その反作用トルクで取っています。研究用の一輪車ロボットでは、垂直軸まわりに回るフライホイールを積み、その反作用で車体をヨー方向に向ける(①の腕のひねりを機械化したもの)構成もあります。
つまりロボットでは、「傾けて歳差で曲がる」よりも、 フライホイールの反作用トルクで直接向きや傾きを制御する 方が、制御しやすく確実なので主流です。
🟩 Q: 一輪車にみえて、見えないフライホイールを回す。ということ?¶
はい、まさにそういうことです。見た目は一輪車に乗っていますが、 胴体の中に隠れたフライホイールがバランスの大部分を担っています 。ムラタセイコちゃんの場合、左右バランス用の円盤は胴体内に収められていて、外からは見えません。
ただし、これは「ズル」というより、人間がやっていることを機械に置き換えたものと考えるのが妥当です。人間の一輪車乗りも、腕や上体を振り回して反作用トルクを得ています。つまり 人間は自分の腕や上体をフライホイール代わりに使っている わけです。ロボットはそれを円盤の回転で効率よくやっている、という違いだけです。
🟨 「回し続けて安定させる」わけではない¶
ここは誤解されやすい点ですが、リアクションホイールは高速で回し続けてジャイロ効果で安定させるのではなく、 加速・減速させたときの反作用トルク を使います。
右に倒れそうなら、ホイールを一方向に加速して、車体に逆向きのトルクを与えて起こす、という使い方です。
🟨 弱点:飽和¶
同じ方向に倒れ続けると、ホイールをずっと同じ向きに加速し続けることになり、いずれモーターの最高回転数に達して、それ以上トルクを出せなくなります( 飽和 )。そこで、ホイールの回転数をゼロ付近に戻すために、少しだけ逆側に傾けて重力を利用する、といった制御を併用します。人工衛星の姿勢制御にもリアクションホイールが使われていて、同じ飽和問題を磁気トルカやスラスターで解消しています。
🟨 別方式:回し続けてジャイロ効果を使うもの¶
逆に、円盤を高速で回し続け、その回転軸の向きを傾けることでジャイロ効果のトルクを得る方式もあります。これは コントロールモーメントジャイロ(CMG) と呼ばれ、宇宙ステーションの姿勢制御や、過去に試作されたジャイロ式モノレール、自立する二輪車のコンセプトなどで使われています。リアクションホイールより小さな動力で大きなトルクを出せますが、機構と制御が複雑になります。
🟩 Q: 2足ロボの姿勢制御もフライホイールのほうが、「楽に制御できる」の?¶
結論から言うと、2足歩行ロボットではフライホイールはほとんど使われません。一輪車ロボットで有効なのは「地面から横方向のトルクを得られない」という特殊事情があるからで、足のあるロボットにはもっと強力な手段があります。
🟨 一輪車と2足の違い:足裏の面積¶
一輪車の接地は実質的に点(左右方向には幅がない)なので、地面を押して横方向に車体を起こすトルクを作れません。だから外部からトルクを生むフライホイールが必要になります。
一方、2足ロボットの足裏は面です。足裏の中で圧力の中心(ZMP、CoP)をずらすことで、地面から大きなトルクを得られます。足首の関節トルクで重心を押し戻せるので、フライホイールより桁違いに大きなトルクを、飽和もなく出せます。
🟨 人間・ロボットのバランス戦略¶
外乱が大きくなるにつれて、以下の順に使い分けています。
足首戦略:足首のトルクで足裏の圧力中心を動かし、体全体を倒立振子として立て直す。小さな外乱向け。
股関節戦略:上体を素早く前後に曲げて、その反作用で重心を戻す。上体をフライホイールとして使っているわけです。
ステップ戦略:踏み出して支持多角形そのものを移動させる。最終手段だが最も強力で、制御理論ではキャプチャポイント(「ここに足を置けば止まれる点」)として定式化されています。
🟨 フライホイールの概念自体は使われている¶
2足歩行の制御理論には「倒立振子+フライホイール」というモデルがあります(Prattらの研究)。ここでのフライホイールは実物ではなく、上体や腕の回転を等価的に表したものです。最近の全身制御では、重心まわりの角運動量(セントロイダル角運動量)として扱い、腕振りや上体のひねりで調整します。人間が歩くときに腕を振るのも、脚の振りで生じる体のねじれ(角運動量)を打ち消すためです。
つまり「フライホイールの役割は必要だが、専用の円盤を積むより、すでにある上体や腕を使う方が合理的」というのが2足ロボットの答えです。円盤は重量が増え、出せるトルクも小さく、飽和もするので、割に合いません。
🟨 例外:空中にいるとき¶
ジャンプ中など足が地面から離れている間は、足裏の力が使えず角運動量が保存されるので、一輪車と似た状況になります。このときは、腕や脚を振る(Atlasのバク宙など)か、尻尾を振る(チーター型ロボットやトカゲ型ジャンプロボットの研究)ことで空中姿勢を整えます。尻尾も、まさに「回転しないフライホイール」として機能しています。
🟩 Q: オフィスとか店舗内をスイスイと動くには一輪車がよさそう¶
直感としてはわかります。接地面積が小さくて細長い体型にできるので、人混みや狭い通路に向いていそうですよね。ただ、実際にオフィスや店舗で走っているロボット(配膳ロボット、搬送ロボット、警備ロボットなど)は、ほぼすべて 普通の車輪+キャスターで自立する(静的に安定な)タイプ です。一輪車型には、いくつか実用上の壁があります。
🟨 一輪車型の弱点¶
横に動けない :一輪車は進行方向にしか進めず、真横に動けません(非ホロノミック拘束)。人をよけるにも、一度向きを変える必要があり、狭い場所での細かい動きは意外と苦手です。
止まるのにも手間がかかる :倒立振子なので、前に加速するには一度車輪を後ろに動かして車体を前に傾ける必要があり、止まるときは逆の動作が要ります。障害物を見つけても「その場で即停止」ができません。
電源が切れると倒れる :故障や電池切れで転倒するリスクは、人のいる場所では大問題です。安全規格や認証の面でもハードルが高くなります。
常に電力を消費する :止まっているだけでもバランス制御が必要です。
荷物で重心が変わる :物を運ぶと重心が変わり、制御を調整し直す必要があります。
🟨 スイスイ動く路線なら「ボールバランス型」¶
「細身で動的に安定」という方向性を突き詰めるなら、一輪車より ボール型(ボールボット) の方が有利です。1つの球の上に乗り、球を複数のオムニホイールで駆動するので、 全方向に移動でき、その場で回転もでき 、左右方向のフライホイールも不要です。カーネギーメロン大学のBallbotなどの研究例があり、ホンダのパーソナルモビリティU3-Xも、方式は違いますが全方向に動ける一輪型の工夫をしていました。
人に押されたら倒れずに軽く押し返される、傾けて自然に加減速する、といった振る舞いは人間と共存する上で魅力的で、研究としては今も続いています。
🟨 実用で選ばれているのは¶
現在の実用機は、差動二輪+キャスター、あるいはメカナムホイールやオムニホイールによる 全方向移動台車 が主流です。動的安定の魅力より、「止まれば止まる」「壊れても倒れない」という安全性と単純さが優先されている、というのが現状です。