2026年10月13日火曜日

Make Faire Tokyo / Seoul 2026

Maker Faire Tokyo 2026および Maker Faire Seoul 2026に出展しました。

Tokyoではテーブルホッケーロボットとインタラクティブ・ペンプロッタを展示しました。これは3年前とほぼ同じ構成でほぼ同じ(修繕・調整して操作ボタンがついた)でしたが、その後Seoulにはインタラクティブ・ペンプロッタだけ持っていくことにしていたので、それに向けて2点の改善と機能追加が一応できました。

1. 3目並べの枠線検出アルゴリズムの改善

2. LLM(大規模言語モデル)等との接続

2が、今年から始めた新たな試みです。もともとの構想で、ロボット自体はカメラとアームだけの構成として、各種アプリケーションソフトウェアを作ろうというものでした。しかし、昨今のAI技術の進展により、適当な自然言語で人とインタラクションすることがすでにコモディ化しました。実験程度であればやらない理由はないので、ひとまず使えるものは使うという方向でデモの作成を試みました。

画像とテキストプロンプト、および出力形式指定を汎用LLMのAPIエンドポイントに送信し、その結果を描画します。

入力画像はbase64エンコーディング、出力は描画内容として複数の折れ線の点の座標列を出力するものとし、JSONスキーマでフォーマットを指定しました。

LLMとしては最初にGeminiを試しました。一応それらしい結果は得られたのですが、Geminiは無料プランでは利用できる量が限られ、気軽に実験するにはもったいないところがあるので、同じくGoogleがて提供するフリーのモデルであるGemmaを使えるようにしました。

自宅のPC、Ollama (https://ollama.com/)上でGemma4(31B)を動作させ、Google Compute Engineのインスタンス経由のリバースプロキシで中継して外部から使えるようにしました。

このように自分のPCへインターネットからアクセスできるようにするのは、昔ならルーターのポートを開放してdynamic DNSでIPアドレスに直接通信する、などをしていたこともありますが、セキュリティ上のリスクを全部自分で負うことになるので現在ではそれはせず、GCP/GCEを活用しました。

このデータが通るだけの仮想マシンはストレージもいらず大量の計算もせず、推論をしないのでニューラルネットワークプロセッサも不要で最低限の能力で良いのですが、その外部との通信は従量で課金されるので、無尽蔵に通信が増えないようにする注意は必要です。今回イベントではトータル10回程度の画像認識を使ったと思いますが、1400円ほどでした。

この構成により、一応一通り、ロボットがカメラで画像を得る-->自宅PCのGemmaが描画内容を決める-->ロボットのモーターが動いて描画する、というループを成立させることができました。但し、今回試した「チェックボックスにチェック記号を書く」というだけの指示内容で推論に30秒前後かかってしまったので、まだ使い方を再考する必要があります。

元々がチャットボットの画像版、のようにかなり汎用的な内容を処理させることを考えていたのでそのまま汎用AIのGemini/Gemmaに任せる方式で作ってみたわけですが、書いた反応がすぐ欲しいというインタラクション、リアルタイム性を考えるともう少し特化したモデルを作るなど、どちらかというとVLM/VLAなどの制御系の話に近い仕組みも必要なのかな、と思いました。

今後関連分野の勉強をしていきたいと思います。

ドアスタッフロボ

2025年夏頃投稿した映像についてです。

自律移動家電ロボット「カチャカ」ですが、ドアを通れないので、ドアの開閉を行うロボットを製作して自分で通れるようにしてみました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">家の #Kachaka が自分でドアを通れたらどんな感じだろうというのを見てみたかったので、「ドアスタッフロボ」を作って通過させてみました。 kachaka PROであれば他に方法がありそうですが、これはオリジナルなのでkachaka Playground内からスクリプト的にkachaka APIを呼び出して動作しています。 https://t.co/VKjOdAtLji</p>&mdash; 山口辰久 (@qzy13700) <a href="https://x.com/qzy13700/status/2023014696329314699?ref_src=twsrc%5Etfw">February 15, 2026</a></blockquote> <script async src="https://platform.x.com/widgets.js" charset="utf-8"></script>

ドア自体をロボット化しただけなので「ドアロボ」でも良いのですが、これはSF作品「アポカリプスホテル」に「ドアマンロボ」というキャラクターがいるのでそれを意識してあえて「ドアスタッフロボ」としています。(staff=従業員)

もちろんkachakaにはそのような自動ドアや他のロボットを直接想定した機能は搭載されていませんが、kachakaに対して外部から指示を与えたり状態を取得したりする「kachaka API」を使うことで連携しての動作を行いました。

今回試したのは、ロボットの移動を分割し、移動→ドア開→移動→ドア閉→移動、というシーケンスを行うという方法です。kachakaには、「地点へ移動する」命令を2回に分けて送信しています。映像ではkachakaが音声を再生しているところが

1.「ドア内側に行きます」 (move to location)

2. 「ドアを開けます」 (speech)

3. 「ドア外側に行きます」 (move to location)

4. 「ドアを閉めます」 (speech)

5. 「洗面所に行きます」 (move to location)

3回ありますが、これがそれぞれAPIで命令を送ったタイミングです。移動指示をした際には「~に行きます」とシステム固定の音声が再生されます。

この方法ですと、kachaka本来の機能の音声コマンドやアプリ操作で移動や家具を運ぶ動作を行うことができません。Playground(ユーザープログラムが動かせるロボット内のLinuxコンテナ)の方のプログラムがUIに相当する部分をすべて扱う必要があります。デモ映像ではそれすらなく、単にPythonスクリプトをコンソールから起動したものです。

kachaka本体の機能で動かすことができると、「音声認識によるトリガ」「特定の時間に実行」「棚を揺らしたら実行」「本体後部のボタンを押したら実行」などができます。特に音声操作はこのロボットの基本機能ですので、使えるようにしたいところです。これについては、kachaka APIの機能を使えばある程度実現できそうなハックを思いついたので、後日検証できたらまた書きます。

Make Faire Tokyo / Seoul 2026

Maker Faire Tokyo 2026および Maker Faire Seoul 2026に出展しました。 Tokyoではテーブルホッケーロボットとインタラクティブ・ペンプロッタを展示しました。これは3年前とほぼ同じ構成でほぼ同じ(修繕・調整して操作ボタンがついた)でしたが...