資料
ダウンロード
Technology > URDFを読むだけで全身のバランスを取る ― ヒューマノイド・オートバランサー

URDFを読むだけで全身のバランスを取る ― ヒューマノイド・オートバランサー

ヒューマノイドの全身バランスを、URDF を読み込むだけでその機体に合わせるオートバランサーです。寸法・質量・慣性・関節の可動域・衝突形状は URDF から取ります。両手と両足のリンクを指定すると、同じアルゴリズムと同じ判定基準で、歩行・運搬・着座のバランスを解きます。

ここに書く数値と映像は、すべて計算機シミュレーションの結果です。体格の異なる 3 機種で、歩行・4kg の運搬・体育座りの往復が、停止や姿勢保持なしで完走しました。実機での実測値ではありません。判定は幾何と重心にもとづく準静的なもので、すべての体格での成立を保証するものでもありません。

紹介映像

※ 3 機種への適用、歩行(6 歩)、4kg の運搬、立位から体育座りへの往復。約 2 分 22 秒。事例 3 はシミュレーション時間の 2 倍速。計算機シミュレーションであり、実機の実測ではありません。

URDF を読むと、その機体のバランスになる

表示・運動学・重心・姿勢計算・干渉判定は、URDF から作った 1 つのモデルを共有します。機体ごとの設定ファイルや、モデルの二重管理はありません。

URDFとリンク役割と動作指令を入力し、一つのロボットモデルから行動計画・全身姿勢計算・成立判定を経て、関節角の指令を出す構成
URDF から生成したモデルを、計画・計算・判定・表示で共有します。判定を満たさない姿勢は、減速・姿勢保持・停止へ移ります。(クリックで拡大)

URDF からそのまま使う値は、次のとおりです。

  • リンク寸法・関節の原点 ― 骨格の長さと取り付け位置
  • 関節軸・可動域 ― 軸と上限、速度の上限を制約に使う
  • 質量・重心・慣性 ― 各リンクの inertial から全身重心を出す
  • 衝突形状 ― 自己干渉と床への干渉
  • 足裏の支持形状 ― 足リンクの底面から自動で抽出
  • 外観メッシュ ― STL / OBJ / DAE を表示に使う

導入は 3 手順です。URDF(メッシュ付き ZIP も可)を読み、両手・両足の 4 リンクを選び、動作を実行します。リンク名の命名規則は不要で、役割の候補は自動で出します。編集したモデルは URDF とメッシュ一式の ZIP で書き出し、そのまま読み直せます。

バランス機能そのものは、両手・両足を指定した任意構成の URDF に適用できます。起立の保持、手先の位置と姿勢、片脚支持、2 歩の踏み出し、両手で持ったままの運搬、重心の移動と前方へのリーチがここです。6 歩の歩行、把持から設置までの運搬、しゃがみ・着座・体育座りの往復のように段取りを含む動作は、標準骨格の関節構成に対応付けた URDF で使います。寸法と質量は、読み込んだ URDF の値で計算します。

読める形式は、URDF とメッシュ付き ZIP、関節は revolute / continuous / prismatic / fixed / mimic、メッシュは STL / OBJ / DAE です。Xacro は事前に URDF へ展開します。floating / planar 関節と、外部 URL 参照のメッシュは対象外で、読込時にその旨を出します。

体格が違っても、同じ基準で完走した

同じアルゴリズム、同じ判定基準のまま、体格の異なる 3 機種で全動作が完走しました。脚の寸法と関節位置は、各 URDF から測って計画に使います。

標準体格45kg、コンパクト体格31kg、長身・長腕58kgの3機種と、片脚上げ・歩行・運搬・体育座りがすべて完走した表
標準 45kg、コンパクト 31kg、長身・長腕 58kg。片脚支持、重心移動、6 歩歩行、4kg 運搬、しゃがみ、体育座りの往復が、3 機種とも完走しています。(クリックで拡大)

リンク 31・関節 29・42kg の、構成が違う別モデルでも、汎用のバランス機能 8 種が完走しました。これはシミュレーション上の準静的な判定による結果です。

行動とバランスを、全身で同時に解く

歩行・運搬・着座のあいだも、足の配置・手先・腰の高さと、バランスの条件を 一つの計算で同時に満たします。全身の関節を協調させます。把持物の質量は各リンクの質量に足して全身重心を求め、支持多角形の内側に余裕を確保します。

行動と一体の計算、荷重を含めた重心、成立判定の3点と、足裏を囲む支持多角形の図
支持多角形は、足裏・手のひら・臀部など、床と接している部位を囲む領域です。重心の真下を、縁から 12mm 以上内側に保ちます。(クリックで拡大)

約 20ms の周期ごとに、次を繰り返します。

  1. 行動の段取り ― 歩行・運搬・着座の時刻ごとの手順
  2. 目標 ― 足の位置と向き、手先、腰の高さ、重心
  3. 全身の姿勢 ― 標準モデルでは 182 自由度を同時に算出
  4. 成立判定 ― 支持余裕、推定 ZMP / CP、干渉、速度

物理的な成立(足・重心・接触・干渉)を先に満たし、そのうえで上体の鉛直や膝の余裕といった姿勢の質を選びます。

成立した姿勢だけを指令にする

動作中は、次の基準を常時適用します。荷物の揺れの上限などは、運用に合わせて変えられます。

項目 基準 見ているもの
支持余裕 12mm 以上 重心の真下から支持多角形の縁まで
推定 ZMP / CP 2mm 以上 踏ん張り点・踏み出し点が支持範囲内か
重心の追従 0.3mm 以下 計画した重心との差
足先 位置 1.5mm 未満、向き 0.7° 未満 滑り・浮きを許容しない
自己干渉 3mm 以上 腕と胴、脚同士などの間隔
床へのめり込み 1mm 未満 床との干渉
関節の指令速度 90°/s 以下 腰 0.2m/s、上体 60°/s 以下
荷物の揺れ 加速度 2m/s² 以下 ジャーク 20m/s³ 以下(初期値)

ZMP は足裏にかかる力の合力の作用点、CP(キャプチャポイント)はそこへ足を出せば止まれる点です。どちらも支持範囲の内側にあることを見ます。

基準を満たした姿勢だけを指令にします。満たさないときは基準を緩めず、速度を 1/2、1/4、1/10 と落として計算し直し、直前の成立姿勢を保持し、60 回連続で不成立なら理由を出して停止します。

候補姿勢の算出から、減速して再計算、直前姿勢の保持、理由を表示して停止までの流れ
不成立の候補では、時刻・接触の切り替え・荷物の受け渡しを進めません。足先、重心、支持余裕など、満たさなかった条件を表示します。(クリックで拡大)

歩行、運搬、体育座り

3 事例は、20ms 刻み、標準体格(URDF・45kg)、各動作の初期設定です。いずれも停止・姿勢保持は 0 回です。

腕を体側に下ろして6歩歩く様子。最小支持余裕45.0mm、上体の傾き0.32度、26秒で完走
歩行。歩幅 8cm で 6 歩、26 秒。腕は体側に固定し、重心は脚と体幹で調整します。上体の傾きは最大 0.32°、背部の反りは最大 0.47°。(クリックで拡大)
4kgの荷物を両手で持って歩き、台へ置く様子。荷物の加速度0.36m/s2、37秒で完走
4kg の荷物を把持し、6 歩運んで台に置きます。37 秒。質量は段階的に手先へ移し、その都度重心を計算し直します。荷物の加速度は最大 0.36m/s²、ジャークは最大 14.9m/s³(上限 20)。(クリックで拡大)
立位から床に手をつき、体育座りを経て、再び立つ4場面。最小支持余裕23.8mm
立位から体育座りを経て立位へ。支持は、両足、両足と両手、臀部と踵、の順に切り替わり、切り替えるたびに支持多角形を作り直します。最小支持余裕は 23.8mm。(クリックで拡大)
基準 歩行(6 歩) 運搬(4kg) 体育座りの往復
結果 ― 完走(26 秒) 完走(37 秒) 往復を完走(100 秒)
最小支持余裕 12mm 以上 45.0mm 45.0mm 23.8mm
推定 ZMP 余裕 2mm 以上 24.4mm 24.6mm 23.1mm
推定 CP 余裕 2mm 以上 25.4mm 25.6mm 23.8mm
上体の傾き ― 0.32° 0.65°(反り 0.93°) 座る動作のため対象外
停止・保持 ― 0 回 0 回 0 回

歩幅 18cm、1.5 倍速の運搬条件でも完走しています。紹介映像の事例 3 は、シミュレーション時間の 2 倍速で再生しています。

確認した範囲と、実機の前に残ること

自動テスト 123 件が合格しています。URDF の読込・書き出し・再読込、3 機種の脚動作、読み込んだ URDF の運動学と重心で全動作が動くこと、10〜50ms の不規則な刻みと再生速度の変更、全フレームで上の判定基準を満たすこと、を見ています。資料と映像の数値は、ブラウザ上の実行と同じ 20ms 刻みです。

シミュレーションで確認できていることは、次のとおりです。

  • URDF を読むだけで、寸法と質量の異なる機体に同じオートバランサーを適用できる
  • 3 機種すべてで、歩行・運搬・床座りの往復が判定基準を満たして完走する
  • 成立しない動作を、動作の前または途中で判定して停止する
  • 荷物の質量、揺れの上限、手先の許容幅を条件として扱える
  • 約 20ms の周期で計算が成立する

実機に載せる前には、別の確認が残っています。お客様の機体 URDF での評価、実機の質量・慣性・関節特性の同定と URDF への反映、トルクやアクチュエーターの遅れ・センサー誤差を含めた評価、外乱への応答、より速い動的歩行、そして実機計測による性能値の確認です。現状の判定は、準静的な幾何と重心によるものです。

まとめ

  • 読み込むだけ ― URDF の寸法・質量・可動域・衝突形状で、全身バランスを機体に合わせる。リンク名の規則は不要。
  • 全身で同時に解く ― 歩行・運搬・着座の目標と、支持余裕 12mm 以上などの条件を、同じ周期で満たす。
  • 安全側 ― 基準を満たした姿勢だけを指令にする。満たさないときは減速、保持、停止。基準は自動で緩めない。
  • 3 機種で完走 ― 45 / 31 / 58kg。歩行・4kg 運搬・体育座りの往復は、停止・保持 0 回。
  • シミュレーション ― 準静的な判定の結果であり、実機の実測ではありません。

デモやご相談を承っています。

この技術や導入について、お気軽にご相談ください。

お問い合わせ・ご相談はこちら
一覧に戻る

Contact

自社のロボット、現場、データにどう使えるか。まずは相談から

既存ロボットへの知性付与、ローカルAI導入、移動AI、ヒューマノイド制御、行動ログの記録まで。製品選定とPoCの組み立てを、Forcesteed Robotics が支援します。