世界を動かす技術を、日本語で。

Show HN: Shoggoth Mini – GPT-4oと強化学習によって動く柔らかい触手ロボット

概要

  • ロボティクスはLLM時代に急速に進化し、実用性を超えた「表現力」が重要視され始めた動向
  • AppleのELEGNT論文やSpiRobsなど、意図や感情を伝えるロボット設計の新潮流
  • Shoggoth Mini開発を通じて、ハードウェア設計や制御系、知覚、強化学習の工夫と課題
  • 表現力と「生きている感」の違い、予測不可能性が与える印象の考察
  • 今後の展望として、さらなる表現の拡張や人間との快適な共存の可能性を模索

ロボティクスと表現力の新時代

  • Piのπ0.5Tesla Optimus など、最新ロボットは自然言語指示や未知環境での作業が可能
  • しかし、多くは 家電的な実用主義 にとどまり、共生には「表現力」が不可欠
  • 表現力 は意図・注意・自信などの「内部状態」を伝達し、自然な対話を実現
  • 表現が不足すると「 不気味の谷」現象が顕著化
  • Apple ELEGNT論文 はPixar風ランプで姿勢・タイミングのみで意図を伝える設計を提案
  • SpiRobs のような柔軟な触手ロボットも、単純な動きで「生きている感」を醸し出す
  • 意図的な設計と偶発的な「生命感」の違いに着目し、 Shoggoth Mini 開発を開始

Shoggoth Mini開発経緯

  • 実験用テストベッド として、3つのモーターと触手を支えるドームを設計
  • フィラメント切れの偶然から「口」のような外観に、さらに目を描いて独特なキャラクター性を獲得
  • ステレオカメラ 搭載で触手追跡を実現、ロボットの「目」が注目を集める要素に
  • ケーブルの絡まり問題には スプールカバー 追加で大幅改善
  • キャリブレーションスクリプト と余剰ワイヤーでメンテナンス性向上
    • ケーブルの巻き戻し・再巻き取りが容易
    • テンション調整の精度向上
    • 制御ポリシーの自由度確保
  • 触手の自重による「たるみ」には 背骨の強化 で対処
  • 3D CADデータ とSTLファイルを公開、誰でも再現可能な設計

マニュアル制御

  • 触手の3本の腱長(3次元)を 2次元トラックパッド操作 に単純化
  • 各腱の主方向にカーソルベクトルを射影し、腱の伸縮量を計算
    • $s_i = \mathbf{v}_i^\top \mathbf{c}$
  • 2次元操作は直感的で、誰でも即座に触手を動かせる
  • この 2D→3D射影 は全自動制御にも流用され、システムの基盤に

システム設計

  • 制御層は2層構造
    • 低レベル制御: オープンループの基本動作(例:「うなずく」「振る」)と、クローズドループ強化学習(例: 指追従)
    • 高レベル制御: GPT-4oのリアルタイムAPIで音声とテキストを処理、視覚イベントはテキストで送信
      • DeepMind Gemini Robotics論文のVLA(Vision-Language-Action)モデルに着想
      • GPT-4oはタイミング調整が難しく、プロンプトエンジニアリングが重要
  • エンドツーエンド学習 は柔軟体ロボットでは不安定なため、視覚+軽量コントローラのカスケード型設計を採用
  • API呼び出し間の「無反応」時に 呼吸するアイドルモード を追加し、生命感を演出

知覚(Perception)

  • MediaPipe で手の追跡、被写体の遮蔽にはやや弱い
  • 触手先端の追跡は、様々な状況でデータセットを収集し、 Roboflow で自動ラベリングと拡張
  • YOLO で触手先端検出モデルを訓練、 DeepLabCut でカメラキャリブレーション
  • これにより手と触手の リアルタイム3D三角測量 を実現

低レベル制御API

  • 柔軟体ロボットは逆運動学が困難、 2D射影制御 で直感的に動作設計
  • 背骨強化で再現性も安定
  • 「つかむ」動作は前方ケーブルを引き、他を緩めるだけで多様な物体を把持可能
  • 高度な巧緻操作は難しいが、 機械的なロバスト性 が設計上の利点

強化学習(Reinforcement Learning)

  • 指追従ポリシーで MuJoCoシミュレーション から現実転送を検証
  • PPO+MLP+フレームスタック、動力学ランダム化で転送性向上
  • 初期は腱長直接制御で「報酬ハッキング」発生、 2D射影制約 で現実的な動作に
  • カリキュラム学習で徐々に3D制御へ拡張も可能
  • アクションの急変による「ジッター」は、 連続差分ペナルティ指数移動平均 でスムーズ化
  • シミュレーションから実機への転送もスムーズに実現

表現力と「生きている感」

  • 初期は予測不能な動きが「生きている感」を醸成
  • 制御が洗練されるほど、予測誤差が減り「生命感」が薄れる傾向
  • 表現力 は内部状態の伝達だが、「生命感」は 予測不能性や不透明さ に由来
  • 人間と共存するロボットに「どこまで生命感を持たせるべきか」は今後の課題

今後の展望

  • より「非人間的」な 音声表現 の導入
  • 表現力と快適な共存のバランス探求
  • 柔軟体ロボットの 新たな表現・インタラクション の可能性拡張

Hackerたちの意見

いや、絶対に無理!この映画見たことあるけど、デスクにフェイスハガーなんて座らせたくないわ。

一方で、変態愛好者たちは…

これマジでヤバい。今のAI技術やロボットが進化してるのに、考えるのがヒューマノイドロボットだけってちょっとダサいよね。家の中をクモとイカのハイブリッドロボットが走り回ってほしいんだけど。

我々はロボティクスをヒューマノイドの世界に最も適合させようとしてる。でも、彼が言ってるように、異なる肢のタイプも面白いかもしれないね。

ラブクラフトの引用、いいね。小さいモデルでも大丈夫かなって思ってる。

うん、俺も同じこと言いに来た。これで物事が簡単になりそうだよね。彼はこう言ってるよね:「最初は単一のエンドツーエンドVLAモデルを訓練しようと思ったけど、[...] ケーブル駆動のソフトロボットは違う。同じ先端位置が多くのケーブル長の組み合わせに対応できるから、この予測不可能性がデモベースのアプローチをスケールしにくくしてる。[...] だから、俺はカスケードデザインにしたんだ:特化したビジョンが軽量コントローラーにフィードして、後でより高度な学習行動に拡張できる余地を残す。」やっぱり小さいモデルに戻るのは素晴らしいと思う。いくつかのアップグレードでローカルホストのモデルが使えるかもしれないけど、グレートワンを呼び出さないようにペンタグラムの中に置くことは確実にするよ。

https://knowyourmeme.com/memes/shoggoth-with-smiley-face-art... https://www.nytimes.com/2023/05/30/technology/shoggoth-meme-...

これめっちゃクール!非言語的で人間じゃない存在に表現力を加えるアイデアが大好き。

同意!ピクサーのランプはいいスタート地点だと思う。ロボットが曲がったり、YES/NOで揺れたり、好奇心を持ったり不満を表現したり、LEDを使って自己表現できるようにしたらいいね。

テクノロジーと人間の心理の面白い交差点だね!「終わりの方で気づいたのは、ロボットは表現力があったけど、だんだん生きている感じが薄れてきたこと。最初はその動きに驚かされたし、意図を読み取らなきゃいけなかった。でも、どう動くかを理解していくうちに、予測エラーが減っていった。表現力って内面的な状態を伝えることだけど、生きていると感じるかどうかは別の要素に依存してる。予測不可能さや、ある種の不透明さが必要なんだろうね。生きているシステムは、複雑で高次元な世界を追跡するけど、Shoggoth Miniはそうじゃない。ここで疑問が浮かぶ:実際に生きていると感じるロボットを作りたいのか?それとも、表現力を超えたところに、人間のそばにいるのが不快になるほどエージェント的で予測不可能な閾値があるのか?」

これって、ゲームの仕組みを理解しちゃうと楽しめなくなる感じに似てるね。魔法が薄れるというか、シンプルなルールで複雑な結果が出ることもあるけど、なんか決まってる感じがする。

ファービーを思い出すな… 形やサイズが似てて、二つの目がギョロっとしてたけど、触手の代わりに耳が動いてた。最初は感心するけど、ちょっと実験してみると、シンプルな外部刺激と内部状態の組み合わせで反応する基本的な行動パターンがあるって気づくんだよね。(ここで誰かが「人間も同じことしてるじゃん!」って言いに来るところだね。)

人は昔から、火や流れる水に意志や知恵を感じたり、18世紀の自動人形に驚いたり、初期のチャットボットやChatGPT、さらには時々「気性」を持っているように見える他の機械にもそういうことをしてきたんだよね。

これ、めっちゃ可愛い!去年、触手ロボットについて調べたことがあるんだ。正式な名前は「連続体ロボット」で、医療ロボティクスでの有用性から開発に関する研究がかなり進んでるよ。この講義は好奇心旺盛な人にはいい概要だね: https://youtu.be/4ktr10H04ak

日本のメディアをたくさん見てきたから、これがどうなるか分かるよ。

「ああ、ためらったね」他の質問でもそうだったけど。GPTが反応を処理するのにかかる時間がすごく不安だよ。ニュースが遠隔地でインタビューしてるときの応答の遅れよりも悪い気がする。目にLEDをつけて、活動中を示すようにすればいいのに?GPTが動くのを待つのは常に遅れを強いることになるし、特にクラウドにリクエストを送るときはね。それに、「GPT-4oは音声ストリームを通じて常に音声を聞いている」ってのは問題になりそう。

「GPT-4oは音声ストリームを通じて常に音声を聞いている」ってのは問題になりそう ここはウェイクワードライブラリを活用するいい場所かもね。openWakeWordやporcupineとか。そうすれば、ユーザーはプロンプトをエンドポイントに送る前にデバイスを起こせる。休んでるアニメーションやスヌーズ状態を持たせて、ウェイクワードがトリガーされたときに元気になるってのもいいかも。見るとちょっと不気味かもしれないけど… https://github.com/dscripka/openWakeWord https://github.com/Picovoice/porcupine

Qwen 0.6Bみたいな小さいLLMがどれくらい適してるか気になるな…そんなに複雑なタスクじゃない気がする。大きなモデルのゼロショットパフォーマンスを使ってデータセットを作れば、このタスクにモデルをトレーニングできると思うし、すごくスピーディーなものができるかも。

GPTが反応を処理するのにかかる時間がすごく不安だよ それには同意しないな。触手が動きを止めて、話しかけるときに真っ直ぐ立ち上がる様子は、注意を払って考えているっていう直感的な印象を与えてくれる。結構可愛いよ!

ジョニー5みたいに眉毛が必要だね。 https://www.youtube.com/watch?v=l0zmCUVB0Yw

プロトタイピング段階を超えたら、ホストモデルがとても簡単に使えるから、デバイス上で非常に小さく最適化されたモデルを使えない理由はほとんどないよね… 最終製品ではかなり速くて安全になるはずだけど、プロトタイピングにはかなり柔軟性が欠けるかも。

すごい作品だね!このロボットが自然の生き物に見えないように作られてるのがいいと思う。自然とロボットを簡単に区別できない未来は嫌だな。今のところ、人型ロボットは明らかにロボットっぽいし、この流れが続いてほしいな。

4体ゲットだ、ドク・オク!オーギー・ブーギーも考えてた。ティム・バートン。