- Shoggoth Mini は GPT-4o と 強化学習 を活用し、自然で表現力のある動きを実現したソフト触手ロボット
- 従来の 家庭用ロボット と異なり、人間と相互作用する際に 内部状態や意図 を表現できるよう設計されている
- ハードウェア設計からソフトウェア、カメラ認識および制御システム まで、全工程を詳細に説明している
- 2Dトラックパッド入力 を 3D 触手制御に直感的にマッピングして使いやすさを高め、最新のコンピュータビジョン と RL 技術の組み合わせで動作の精度と表現力を確保
- 締めくくりでは、ロボットの生き生きとした感じ、予測不能性 と人間親和性のバランスについての考察と今後の拡張アイデアを提示している
序論と背景
- この1年で ロボティクス 分野は 大規模言語モデル(LLM) の時代と結びつき、急速に発展している
- 代表例として π0.5 や Tesla Optimus などは言語で命令を理解して実際の動作を行うが、多くはまだ 機能的ロボット の段階にとどまっている
- 人間とロボットの相互作用における自然さや内部状態(意図、注意、確信など)の伝達には、「表現力(expressiveness)」 が重要だと指摘する
- Pixar の雰囲気を持つランプ(Apple ELEGNT)や、単純な動きだけで妙に「生きている」感じを与える SpiRobs などから着想を得て、意図的な表現設計と偶発的な生命感の違い に関心を持った
- それを実験するために Shoggoth Mini の制作を開始し、偶然と試行錯誤を通じた設計過程と学びを共有している
ハードウェア
- テストベッドの初期バージョンは、3つのモーターと触手を固定する板、ドーム型カバーからなるシンプルな構造で始まった
- 3Dプリント中にフィラメントが足りなくなり、ドームの一部の色が変わったことで、目と口の付いた顔のような形が生まれ、ChatGPT でビジュアル案を探って形状を確定した
- ドームに ステレオカメラ を搭載して触手を追跡し、ロボットの目の「予測誤差」が視線を引きつける効果を生んだ
- オープンスプール設計はケーブルが外れやすく絡まりやすい欠点があったため、簡単な スプールカバー を追加して問題を解決し、反復実験の速度も改善した
- キャリブレーションスクリプトと予備のワイヤ長を追加し、保守やモーター張力の調整を素早く行えるようにした
- 触手のたわみを最小限にするため、背骨(スパイン)を適度に太く調整した
- CAD 組立図と 3D プリント用 STL ファイルはすべて GitHubリポジトリ で公開している
手動制御
- 初期段階では トラックパッド を使った 2D 操作で触手を直感的に動かせるよう、3本の腱(tendon)の長さ制御を2次元コントロールに単純化した
- 各腱は 2D 平面上で主方向を持ち、カーソルの方向ベクトルを各軸に投影して、必要な張力に応じた長さ変化量を計算する
- 正の値は腱の短縮、負の値は延長を意味する
- この 2D→3D 変換方式は、自動制御(強化学習など)でも基準となる projection layer として再利用した
- 操作範囲は限られるものの直感的な制御が可能で、ヘッドの応答性とユーザー体験を大きく向上させた
システム設計
- 2層の階層型制御構造:
- 低レベルではオープンループ方策(例:
<yes>, <shake>)およびクローズドループ RL 方策(例: 指追跡)で動作し、触手先端/手の位置追跡はステレオビジョンベースのパイプラインが担う
- 高レベルでは GPT-4o がリアルタイムの音声/テキスト(現時点ではビジョンは未公開)を処理し、動画イベント(手を振るなど)はテキスト cue として GPT-4o に渡され、API 呼び出しを決定する
- 大規模モデルによる直接的な end-to-end のビジョン・言語・アクション(VLA)統合ではなく、専用ビジョンと軽量な個別コントローラのカスケード構造 として設計している
- RL の観測範囲の調整や自然なホーミング動作、API 呼び出しの合間に idle(呼吸モード)を入れることで、ロボットの「生きている感じ」を強めている
- VLA の実用上の限界(例: 時間補正の問題)により、プロンプトエンジニアリングが重要な要素として作用している
認知・知覚
- 手の追跡用 MediaPipe と、触手先端追跡用のカスタムデータセットおよび YOLO モデルを組み合わせている
- k-means クラスタリング、Roboflow の自動ラベリング/アクティブラーニング、Segment Anything を活用してデータセット拡張と精密なラベリングを行った
- Ultralytics YOLO で学習し、DeepLabCut notebook でカメラの内部/外部パラメータ推定と 3D 三角測量を実装した
- リアルタイムの 3D 手・触手位置追跡により、堅牢な閉ループ制御を実現した
低レベル制御 API
- ソフトロボットは剛体と違って 逆運動学 がうまく通用しないため、2D control projection 方式を一貫して適用した
- 背骨を太くすることで、セッション間の動作再現性も確保した
- 物体をつかむ(グラブ)動作などの実験を通じて、ソフトロボット特有の 機械的ロバスト性(つかむ物体の形状や重量の多様性を吸収できること)を見いだした
- 高周波の微細操作は難しいが、基本操作は機械設計だけでも意外なほど安定している
強化学習(RL)
- ユーザーの指追跡のような単純な方策から RL を適用し、MuJoCoシミュレータ で動的ランダム化(PPO、MLP、frame stacking、質量/摩擦/減衰のランダム化)を行って sim-to-real の移行性を高めた
- 当初は tendon 長そのものをアクション空間として使ったが、reward hacking や実機移植の失敗が起きた
- 2D projection 方式でアクションを制限することで、非現実的な動作(混乱、振動など)を抑え、curriculum learning による段階的な高次元拡張の可能性も示した
- 急激なアクション変化による振動(jitter)を補うため、reward に penalty 項を追加し、EMA でアクションを平滑化した
結論と今後の方向性
- 当初に感じていた 予測不能さと解釈の余地 が「生きている」感覚を与えていたが、分析と内面化が進むにつれて、そのフィードバックの新鮮さは次第に失われていった
- 表現力(意図の伝達)そのものと 生命感(予測不能性)のバランスが、ロボットと人間の相互作用において決定的だと強調する
- 今後の拡張アイデア:
- 非人間的な声を与える
- 2D 制約を解除する
- RLHF などで表現動作の多様性を高める
- 触手を追加し、自律移動を実装する
- ダイレクトドライブモーターの採用による騒音低減
- ソースコードと各種ファイルは GitHubリポジトリ で提供しており、協業や議論を歓迎している
1件のコメント
Hacker Newsのコメント
技術と人間心理の興味深い出会いだと感じた。ロボットは最初こそとても生き生きして見えたが、使っているうちに動きの予測がしやすくなるにつれて、だんだん生命感が薄れていった。『表現力』は内部状態を伝えることに関わるが、『生命感』は予測不能さとある程度の不透明さから生まれる。実際の生きたシステムでは複雑で多様な変数を追跡しているからだ。Shoggoth Miniはそこまでのレベルではない。本当に生きているように感じられるロボットを私たちは望んでいるのか、それとも予測不能すぎて人のそばに置くには落ち着かなくなる限界があるのか、気になる
Furbyを思い出した。形や大きさ、2つの目と動く耳が似ているからだ。最初は物珍しいが、少し触るとごく単純な刺激と内部状態の組み合わせに応じた限られた動きしかしないことがわかる。『人間も同じでは?』と冗談を言う人は多いが、実際にはすぐに反復パターンに気づく
ゲームシステムのルールを理解してしまうと、もう楽しめなくなるのに似ている。ルールの適用だけで複雑に見えても、結果が決まっているように感じられる。あの魔法のような面白さが消えてしまう
人間は火や流れる水、18世紀のオートマタ、初期のチャットボット、ChatGPT、さらにはさまざまな機械にまで擬人性や自律性を与えてきた。機械がときに『気分』まで持っているように見えることすらある
音声アシスタントや人工言語に関する経験を共有している。音声アシスタントはイギリス英語のアクセントに設定しているが、ほどよく異質に感じられるため、むしろずっと信頼できるように思えるという。イギリス人にはそうではないかもしれないが、自分はそう感じるとのこと。過去にゲーム開発に参加した際、NPCの台詞を動的生成しようとしたが、英語でリアルに作るのは非常に難しかった。結局、NPCには架空の言語を話させ、ユーザーがその言語を学ぶようなパズル要素を加えたところ、ずっと現実味のあるキャラクターに感じられた。実際には翻訳に意識を使うため、人工言語だという事実をしばらく忘れられ、『不気味の谷』を避けられたわけだ。ただ、ゲームに慣れて言語の習熟度が上がると、やはり操作された人工システムだと見抜いてしまうのか、今は気になっている
『あ、ためらったな』というより、どんな質問にもだいたい似たようなためらいが感じられる。GPTが反応を生成する遅延がかなり気になり、ニュース中継の回線遅延よりも不快に感じる。目にLEDのようなものを付けて動作中だと示せば少しは良くなるだろうか、という考え。GPTに問い合わせを渡す以上、遅延は避けられず、とくにクラウドへ送るならなおさらだという残念さも共有している。GPT-4oが音声ストリーム全体を常時聞いている設定には問題の余地があると思う
この程度の単純な課題なら、Qwen 0.6Bのような小型LLMで十分だと思う。大規模モデルのzero-shot性能を使って独自データセットを作り、はるかに高速な別モデルを学習させる方法があるはずだ
GPT-4oが音声を聞き続ける点については、wake wordライブラリ(例: openWakeWord, porcupine)を使えば解決できると思う。ユーザーが特定の呼びかけ語で起動してからプロンプトを送れるようにすれば、セキュリティやプライバシーの問題も減らせる。普段は『眠っている』アニメーションを表示し、呼ばれたら目覚めて反応する、という作りにもできそうだという提案。関連するオープンソースリンクも共有している openWakeWord porcupine
GPTが応答するときの遅延が不快だという意見には共感しない。触手が止まり、すっと立ち上がると、まるで集中して聞いて考えているような印象を与えるので、むしろかわいく感じる
Johnny 5のような眉毛が必要だと思う Johnny 5の例の動画
プロトタイプ段階を過ぎたら、小さな最適化済みモデルをローカルデバイスに直接載せることもできると思う。そうすればずっと高速で安全になり、最終製品にも向いている(ただしプロトタイプでは柔軟性は下がる)
このアイデアに着想を与えたSpiRobsのすばらしい動画を共有している SpiRobsのYouTube動画
デザインがとてもかわいい。昨年、触手(tentacle)ロボットを調べたとき、正式な用語は "continuum robots" だと知った。特に医療ロボット分野で多く研究されている。もっと知りたければ良い概論講義があるので参考になる 関連講義動画
本当にすばらしいプロジェクトだと思う。AIの能力がここまで増え、ロボティクスも進歩しているのに、なぜいつも人間型ばかり作るのか残念に思う。家の中にクモとイカのハイブリッドのような、独特な形のロボットが現れてほしい
AI安全性の議論は多いが、私はクモとイカのハイブリッドロボットが家の中を歩き回ってほしい
ロボティクスを人間中心の世界に最も適合するように作ろうとする傾向がある。でも脚の形を変えてさまざまな選択肢を試すのも十分おもしろそうだ
絶対にだめだ。こういう映画を見たことがある。フェイスハガーが机の上に座っているのは絶対に嫌だ
Hentaiファンはむしろ歓迎するかもしれない
もし触手がもっと長くて、仲間同士でいたずらできるプログラムがあるなら、むしろ面白いかもしれないというアイデア
ラヴクラフトの参照が良いと思う。小型モデルでも十分ではないかと気になる
Shoggothミームについて参考になるリンクを共有している Shoggoth With Smiley Face Meme NYTのShoggothミーム記事
私もだいたい同意見で、実際にはもっと単純にできそうだ。開発者は『エンドツーエンドのVLAモデル学習も考えたが、ケーブル駆動のソフトロボットでは同じ先端位置に対してさまざまなケーブル長の組み合わせがあり、予測不能性が大きいため、実演ベースの学習はうまくスケールしない』として、最終的には特化したビジョンを軽量コントローラに入力するカスケード設計にしたという。そのうえで、小型モデルで再挑戦したらとても面白そうだし、ローカルモデルを載せるならペンタグラムの中に置いておけば安心だろう、という冗談も述べている
日本発のメディアを十分見てきたので、これがどんな方向に進むか予想できる
発想そのものがとてもすばらしい。非言語的で非人間型の存在に表現力を持たせる試みに惹かれる
本当に美しい仕事だと思う。このロボットが自然界のどんな生き物にも似ないようにデザインされている点が特に印象的だ。ロボティクスと現実の境界が曖昧になる未来は望まない。今のところヒューマノイドロボットも依然として人工的に見えるので、その傾向が続いてほしい