来客に向き合い、一礼して、行き先を手で示す。
そんな「迎える動き」を、G1で形にしたいと考えました。
企業の受付やショールームを想定した試作です。身体の向き、礼をする間、手の差し出し方まで含めて、案内の意図が伝わるかを確かめます。
「あなたに向けた動作」と伝わる向き。
人の動きを、そのまま移せる?
映像から人体の動きを捉え、G1の身体に合わせて変換し、物理シミュレーションで確かめました。
人体では自然でも、G1にすると違って見える。
体格や関節構造が違うため、腕の位置だけが近くても、掌・指・顔の向きがずれることがありました。途中では3つを並べて見比べています。
途中経過:人体CG → 骨格 → G1。G1はこの段階の物理試験の記録です。最後の完成映像とは調整状態・画角が異なります。
倒れずに動かすために、何をしたか
今回の動作制御に、強化学習は使っていません。
人体の推定には学習済みAIを使用。G1の身体は、力学モデルに基づく「全身制御」で動かしています。
まずは、作った一礼・案内の動作を、限定したシミュレーション条件で成立させることを優先しました。強化学習との比較で優劣を決めたわけではなく、多様な条件で動作を学習・検証する段階にはまだ進んでいません。
いまの姿勢を見て、次の力を決める
目指す姿勢・動きと、
現在の身体の状態
接地・摩擦・力の制限を
考慮して指令を決める
関節トルクを与え、
物理シミュレーションを進める
目標姿勢との差を縮めながら、足の接地や摩擦、関節が出せる力も考慮して指令を更新します。終了時は姿勢を保持し、揺れを抑えるよう調整しました。
技術補足:全身制御と強化学習の違い
今回の身体制御は、逆動力学と二次計画法(QP)を使い、現在の姿勢・速度と目標動作から関節トルクを計算します。指には別の追従制御を使っています。報酬を通じてロボットの制御方策を学習する構成ではありません。
物理試験では重力と床接触の下で指令を与えています。動作中に胴体を毎フレーム目標位置へ置き直して立たせた試験ではありません。掲載用映像は、その試験記録を再描画しています。
今回の条件で一礼・案内を転倒せずに実行し、終了後も姿勢を保持できました。条件を変えたときの成立範囲や、実機での実行は未検証です。
小さな姿勢の違いも、印象を変える

待っている姿勢から、見直しました。
腕を前へ曲げたままだと、何かを構えているように見えます。体側へ下ろした姿勢を作り、そこから案内開始姿勢へつなげました。
この待機姿勢とつなぎは撮影用の調整で、物理再検証は行っていません。
条件が変わったら、どうなる?
今回できたのは、特定の条件での動作です。次は、次の4つを確かめる必要があります。
床が滑りやすい
想定した摩擦と違うと、足の接地や追従が崩れる可能性。
重さ・応答が違う
ハンドの質量、実機のセンサー誤差や制御の遅れ。
横から押される
足を踏み出して立て直す機能は、今回未実装。
所作を変える
礼の深さ・速さ・案内方向を変えたら、再評価が必要。
実機へ進むには、強化学習が必要?
実機や条件変更に対応するには、制御をさらに作り込む必要があります。ただし、必ず強化学習で新しいモデルを作るとは限りません。進め方には、次の3つがあります。
全身制御を発展
実機の質量やモーター応答にモデルを合わせ、状態推定や踏み直しを追加する。
強化学習を活用
摩擦・質量・遅延・外力を変えながら、所作への追従とバランス維持を学ぶ。
両方を組み合わせる
学習した動作や補正と、モデルに基づく制御を組み合わせる。
モデルに基づく制御を実機へ適用した全身MPCの研究もあります。ただし、その成果が今回のG1の制御にそのまま当てはまるわけではありません。
今回の到達点は、限定条件での動作成立です。条件が変わっても自然な所作を維持するために、強化学習による動作追従は、次に検討する有力な選択肢です。
今後、強化学習を使うとしたら?
学ぶ対象は、静止姿勢だけではありません。「現在の身体の状態と目標動作から、次の指令を決める制御方策」です。摩擦・質量・遅延・外力などを変えた環境で、動作追従や立て直しを学ぶことが候補です。条件を変えて学ぶ仕組みはIsaac Labの公式資料でも紹介されています。
ゼロから新規学習するか、既存のG1向け方策を利用・追加学習するかは、ハンドを含む機体構成や制御インターフェースとの適合を調べて判断します。利用できる既存方策の選定は、まだ行っていません。
強化学習でも、学習外の条件や実機との差への検証は必要です。来客に合わせた向き・タイミングの変更には、認識と動作選択も別途必要です。
今回の到達点を、映像に
一礼と案内を、来客を迎える場面としてまとめました。オフィスで来客を迎えるシーンを構成し、最後はG1へ寄って動きを見せています。
ここまでを最初の試作として一区切りにしました。来客を認識し、反応を見て接客する機能は、今回の実装には含まれていません。
今回の完成映像・約16秒。案内動作は物理試験の記録を再描画。冒頭の待機・人物の動きは撮影用の構成です。実機や自律接客の実証映像ではありません。
G1実機で動かす前に、確認したいこと
今回の動作は実機未検証です。シミュレーションの関節角や制御設定をそのまま送るのではなく、次の点を実機に合わせて確認する必要があります。以下は今回の構成から考えられる検証項目で、実機で確認済みの手順ではありません。
機体とハンドの違い
G1の仕様・腰のロック状態・手首の自由度・開発用APIを確認。ハンドの取付角、質量・重心、配線や可動範囲もモデルに反映します。
誰が全身を制御するか
標準の運動制御と独自の全身制御の役割を明確にし、指令の競合を防ぎます。標準制御が自動で転倒を防いでくれるとは想定しません。
遅延と実機の応答
関節の軸・符号・ゼロ点を合わせ、姿勢推定、通信遅延、計算周期、モーター応答を確認。状態更新や計算が途絶えた場合の処理も必要です。
一礼の深さと連続運転
低速でも重心が支持範囲を外れれば倒れます。床の摩擦、足の滑り、関節の力・速度・温度を調べ、繰り返し動かす条件でも確認します。
開始・終了・異常時
待機から案内への移行、終了後の保持、制御の切替まで含めて検証。停止指令だけで直立を保てるとは限らず、転倒を想定した停止・保護方法が必要です。
来客との距離
腕が通る範囲だけでなく、転倒時に届く範囲も考慮。手指の挟み込みを避け、立ち入り管理と監視・停止の担当を決めます。人物検知は今回未実装です。
保護された試験環境から、段階的に。
機体に適した転倒防止設備と監視体制の下で、待機・浅い一礼・案内・一連の動作を順に確認します。支持装置で支えた試験と、自立した状態の試験は区別し、来客を入れる前に成立範囲と中止条件を確かめます。
仕様確認の参考:Unitree G1公式仕様、公式SDKの低レベル制御例。SDK例にも仕様による関節の違いと制御モードの扱いが示されています。操作・停止方法は、使用する機体とファームウェアに対応したメーカー資料で確認します。