動きの滑らかさは安心ではない | ロボットの動きと不気味の谷
ロボットが滑らかに動けば人は安心するのか。その素朴な仮説は、VLA の現在地を覗きに行く往復のなかで否定された。動きにも、明確に「不気味の谷」がある。そして業界の主旋律は、その谷の底に向かって、自覚なく登り続けている。
向こう側を覗く理由
X のタイムラインに Michikuni Eguchi さんの投稿が流れてきた。GW のプチ自由研究で VLA のベンチマークをやった、という話。smolVLA、GR00T N1.5、π0、π0.5、molmoAct2 を同じタスクで横並びにして、成功率を 3% から 89% まで並べていた。
数年前なら研究室規模の話だった。それを個人がやって、しかも π0.5 が 89% で GR00T N1.5 が 3% という、モデルごとの「キャラの違い」が一目で見える形で出している。
最近のシミュレーターはすごいねぇ。
ボウルの質感や引き出しの陰影は、ベンチマーク環境がそのまま研究用デモに使えるレベルにある。π0 / π0.5 / GR00T / smolVLA / molmoAct2 を個人が並べて評価できる時代になった。
ここで現実的な算盤を弾く。RunPod の 4090 で時間あたり $0.34〜0.69、月 1〜2 万で 50〜100 時間の 4090 タイムが手に入る。LeRobot 公式の Docker がそのまま動く。秋田の回線は下り 372 Mbps、上り 66 Mbps、レイテンシ 13ms。SSH のキー入力遅延も、データセットの上り下りも、何も問題にならない。
VLA 研究の現在地を肌で知らなければ、Motion UX の主張がどこから始まるべきか見失う。深入りはしない。触り、限界を見極め、Motion UX の視点で批評を入れる。技術側のテーブルに同じ語彙で着くための、最小限の解像度を取りに行く。それだけだ。
LeRobot で π0 と smolVLA を見比べる作業は、それ自体が記事の素材取りになる。技術側が「89% 成功」と語るその同じ動画を、Motion UX 視点で観察すると違う読みが立ち上がるはずだ。これが、後で書く「中央が一番怖い」の話につながる。
シミュレーターとリアルのあいだ
ここで補助線をひとつ引く。Sim-to-Real ギャップ ── シミュレーションで学習させた動きが実機で破綻する、というあの問題が、ここ数年で潮目を変えた。
Isaac Sim と Cosmos が物理ベースレンダリングを前提にしてから、画像入力ベースの VLA がシミュで学んだ視覚を実機で再利用できるようになった。MuJoCo が DeepMind 傘下で再加速し、接触力と摩擦の表現が改善した。Domain Randomization が成熟し、光・テクスチャ・位置をランダム化した学習が現実のばらつきに耐えるようになった。技術側がここまで詰めてきた事実は、前提として尊重する。
なんにせよシミュレーションはロボットの世界では必須で、Sim-to-Realギャップも小さいに越したことはないからね。
その通り。だが、ここから先で問題の名前が変わる。
Sim-to-Real は「シミュの動きと実機の動きの差」だ。物理的に同じ軌跡で動くか。Motion UX が扱うのは、別の差になる。「実機の動きと、それを見た人間が受け取る感覚の差」。これは技術側の議論にほぼ含まれていない。Sim-to-Real が解決した先に残る、最後の設計領域がここにある。
Sim-to-Realのギャップがわからないと、Sim-to-Human ギャップもわからないと思うけど。
これは重要な指摘だった。Sim-to-Real を Motion UX とは独立した層として扱うのは構造的に誤りだ。実際は依存関係にある。
シミュ上で「これは怖い動きだ」と判断したとする。実機ではもっとカクついて出るかもしれない。あるいは逆に、なめらかに出るかもしれない。「丁寧に見える接近角度」を設計しても、実機では重力で軌道が数センチ崩れる。その数センチが、人の印象を変える。Sim-to-Real のズレ方を知らない設計は、現実から浮く。
層の順序を整理しておく。
Motion UX (Sim-to-Human)
↑ Sim-to-Real ギャップの理解が前提
VLA 研究 (Sim-to-Real)
↑ シミュ精度の理解が前提
シミュレーター上の層は下の層を踏まえてしか設計できない。VLA を触りに行くのは、この入れ子のなかで Motion UX の足場を作る作業に他ならない。
中央が一番怖い
技術側の主旋律は明確で、「もっと滑らかに、もっと自然に」だ。Boston Dynamics の Atlas、Figure や 1X のヒューマノイドの所作、これらはみな「自然さ」を目指して進化している。その方向性を裏で支えている素朴な仮説がある。
「滑らかに動く=人が怖くない」。
実際のところ、滑らかにアームやロボットが動く=人が怖くないではないからね。 中途半端に滑らかに動くなら、カクカクしてた方が人は安心するかもだよね。 不気味の谷と同じ問題だよね。
29 年デザイナーをやってきた直感が、業界全体の素朴な仮説を否定した瞬間だった。
CG の不気味の谷を、動きという別軸に置き換える。横軸を「動きの人間/生物らしさ」、縦軸を「人が感じる安心感」にとると、こういう構造が立ち上がる。
位置 | 動きの性質 | 人の反応 |
|---|---|---|
左端 | 完全に機械的、カクカクとした産業ロボット動作 | 「機械が機械として動いている」と理解できる。期待のズレがない。安心 |
中央 | 中途半端に滑らかで、人間/生物に近づこうとして「あと一歩」のところ | 期待と現実のズレが「気持ち悪さ」になる。谷の底 |
右端 | 完全に自然、生き物と区別がつかない動き | 親しみすら覚える。Boston Dynamics の犬がたまに見せる「驚いた」みたいな動き |
動きの不気味の谷は、静止画のそれとは違い、時間軸を伴う。タイミング、速度、停止、躊躇、修正動作 ── これらすべてが「人間/生物らしさ」のスケール上に並ぶ。
具体的に書く。把持の直前に 0.5 秒の躊躇がある。だがそれは思考ではなく、推論の遅延がたまたまその時間に出ただけだ。物を置く瞬間、人間のような「そっと置く」減速曲線を真似ようとして、最後に微妙にズレてカタンと音を立てる。接近の軌道は弧を描いて滑らかなのに、最終的な姿勢角度が機械的に瞬時に決まる。ひとつひとつは「ほぼ自然」なのに、組み合わさると違和感が立ち上がる。これが谷の正体だ。
技術側はベンチマークで「89% 成功」と書く。Motion UX 視点で同じ動画を見ると、その 89% の中身が「気持ち悪く成功している」場合がある。
ここで重要なのは、谷が「技術の未熟さ」から生まれるのではないという点だ。未熟なら左端にいる。完全に成熟したら右端に抜ける。問題は「ほぼ成熟したが、まだ届いていない」という中途半端な成熟度のときに、谷が立ち上がる。VLA の精度が上がれば上がるほど、業界は谷の底へ登っていく。
二つの方向 ── 谷を越えるか、戻るか
道は二つに分岐する。
ひとつは方向 A。莫大なデータと計算資源を投下し、ひたすら自然さを追求して右端へ抜ける道。Boston Dynamics、NVIDIA、Physical Intelligence、Genesis AI、Figure ── 業界が投資しているのは、ほぼ全員この方向だ。
もうひとつは方向 B。中央の谷の手前で踏みとどまり、意図的に機械的に動かす道。ただし産業ロボのカクカクをそのまま受け入れるのではない。自然さを真似ない。機械として礼儀正しく動かす。
方向 | 戦略 | プレイヤー | デザイン余地 |
|---|---|---|---|
A | 谷を越えて右端へ | NVIDIA、Boston Dynamics、Figure、Physical Intelligence | データ・モデル・計算資源で勝負。デザイン余地は限定的 |
B | 谷の手前で機械の上品化 | ほぼ空白 | 動きのデザインの余地が大量にある |
家庭、介護、接客、物流 ── 実際に人と共存することが必要な現場で、いま効くのは方向 B だ。「自然に振る舞おうとして失敗するロボット」より、「機械として清潔に振る舞うロボット」のほうが、人は安心して共存できる。期待値を最初から「機械として」設定しているので、ズレが起きない。
産業ロボのカクカクは、もともと機能のための副産物だった。それを「機械としての所作」として意図的に設計しなおす ── これは新しい仕事になる。停止の仕方。減速のプロファイル。接近の角度。状態の表示。すべて、モデルの問題ではない。デザインの問題だ。
谷を越える競争は、巨大資本がやる。その手前で人と共存する動きを設計する余白は、空いている。
技術者は「自然さは正義」だと信じ込んでいるので、谷の存在に気づきにくい。29 年のデザイナー経験と、RC ヴィークルの製造現場で機械の所作を見てきた感覚と、VLA の現在地への解像度 ── この3つが組み合わさって初めて、方向 B が見える。
補足 ── 方向 A を否定しているわけではない
方向 A は長期的に必要だ。Boston Dynamics や Physical Intelligence が谷を越えるためにやっている仕事は、人類のプロジェクトとして要る。ただし、それが完成するまでの 10 年 20 年のあいだ、ロボットは家庭や介護や接客の現場に降りていく。谷のなかにいる状態のまま。そこで方向 B が効く。両方は並走する。Motion UX が立つのは、その並走の構造を見たうえで、方向 B の空白を埋めるポジションだ。
精度の輪郭を知らない「体験優先」はただの逃げ
ハブ記事「Motion UX とは何か」で、原則の1番目をこう書いた。「精度より体験の成立を優先する」。
この宣言は、ひとつ間違えると、ただのデザイナーの逃げに聞こえる。「精度のことは分からないので、体験の話だけします」と。
そうならないために、暗黙の前提を明示する必要がある。「精度より体験」と言うためには、「精度の輪郭は把握している」が要る。Sim-to-Real ギャップがどれくらいあるか。VLA の現在地はどこか。何が物理的に可能で何が不可能か。輪郭を知ったうえで「ここは精度を諦めて体験で吸収する」と判断するから、設計として強い。
Pixels to Motors では、その輪郭を毎日 mechArm で測ってきた。
send_coords() の逆運動学は RZ が ±167° から −140° まで位置によって暴れる。だから 512,087 点の FK lookup table を作り、send_angles() だけで動かすという選択に至った。Force mode と CCD IK は drive.target の意味論が違って構造的に非互換だ、と判明したのは LOG96 だった。グリッパー先端の青3点検出は標準偏差 0.08mm まで詰めた。GRIP_READY_Z_MM を 8.0mm から 12.0mm に緩めることで、j4 の弧運動が引き起こす Z 軸変動を吸収して、初の把持成功にたどり着いた。
このどれもが「精度の輪郭」の一部だ。輪郭を測ったから、「ここは諦める」「ここは譲らない」が判断できる。8mm では構造的に成立しなかった閾値が 12mm なら成立する、と知ることは、Motion UX の設計判断の地盤になる。
VLA を触りに行く、という今回の判断も、同じ系列に属する。深入りはしない。突き詰めない。ただ、「触ってどのくらいのものか調べておく」。Motion UX が技術側のテーブルに着くために必要な、最小限の解像度を取りに行く。それだけだ。
LeRobot で π0 と smolVLA と GR00T を見比べる作業は、方向 B の素材取りそのものになる。「89% 成功のなかにある気持ち悪さ」を観察して言語化することが、技術者には書けない Motion UX 視点の批評になる。
締め
滑らかにアームやロボットが動く=人が怖くないではないからね。中途半端に滑らかに動くなら、カクカクしてた方が人は安心するかもだよね。
この一行が、Motion UX の独自視点として残るかどうかは、これから書く記事と、これから動かす mechArm の動きが決める。
mechArm の腕を動かしていると、谷の位置が少しずつ見えてくる。j4 の弧運動が Z 軸を予期せず動かしたときの、あの「思った動きと違う」という感覚。512,087 点の lookup から選ばれた角度が、シミュより微妙に重力で垂れたときの、あの数センチの不気味さ。これらは VLA の研究者からは見えない場所だ。
Motion UX は、自然さを競う仕事ではない。人が安心して機械を理解できる位置を設計する仕事だ。
