フィジカルAIの「見て考える脳」を触ってみた ― Gemini Robotics ER 2 を Colab から動かす【世界モデル・VLA 用語解説つき】
- 2 日前
- 読了時間: 14分
2026年8月22日(土)、高知県の「IoP技術者コミュニティ」第4回講座を、弊社高知オフィスで開催しました。PROMPT-XはIoP技術者コミュニティの事務局を務めています。テーマは「フィジカルAI編」。6月の「GAS(Google Apps Script)でAIを呼ぶ」、7月の「AIが動画を読む」に続いて、今回は「AIの判断でモノが動く」ところまでを、ESP32とGeminiで実際に組みました。
本編は3つのハンズオンで構成しました。①温湿度センサの値を自分のスプレッドシートにためる、②ロボット向けモデル Gemini Robotics ER 2 に触れてみる。③AIに植物を育てる「方針」を決めさせてみる。この記事では②を中心に、その前提になる「フィジカルAI」「世界モデル」「VLA」という言葉を整理してから、Google Colab から ER 2 を動かす手順と、ER 2 の2つの特長 ― 座標を返すビジョン機能と、自分で Python を書いて分析する Agentic Vision ― が実際に何を返すのか、そしてそれをどう確かめたかを紹介します。最後に、③のデモ温室で ER 2 に栽培の「方針」を決めさせている仕組みを紹介します。
地方拠点から全国レベルの開発に挑戦してみたい方は、記事末尾の採用情報もご覧ください。
まず、言葉を整理する
フィジカルAI ― 判断が、人を介さずモノの行動になる
「フィジカルAI」の定義は、まだ立場によって揺れています。NVIDIAは「物理法則を学んだモデル」を中核に置き、ロボットメーカーは「AIを使って現実世界で動く機械」を指し、システム屋は「センサーから制御までのチェイン全体」を指します。「ポジショントークに惑わされずに『フィジカルAI』とは何かを考える」も合わせてご覧ください。
フィジカルAI = AIエージェントの「観測 → 推論 → 行動」のループを、観測=センサー、行動=現実への働きかけとして、物理世界で閉じたもの
講座ではAIの判断が人を介さずにモノの行動になるシステム全体をフィジカルAIと呼びました。
2026年7月14日に閣議決定された人工知能基本計画(改定版)は、「日本の勝ち筋は『バーティカルAI』と『フィジカルAI』の実装による『AX』」と明記しています(内閣府)。経産省・NEDOのマルチモーダル基盤モデル開発事業も始まっており、国を挙げて育成に力を入れていく分野になっています。
世界モデル
フィジカルAIについて言及される際に「世界モデル」と「VLAモデル」という言葉がしばしば登場します。
すっかり身近になったChatGPTなどの言語モデルは「次の単語」を当てる訓練をしています。一方、世界モデルは「次に何が起きるか」を当てる訓練をしています。Google DeepMindは世界モデルを「世界についての理解を使ってその一部をシミュレートし、環境がどう変化するか、自分の行動が環境にどう影響するかをエージェントが予測できるようにするAIシステム」と説明しています(Genie 3 発表記事)。
たとえば「このコップを傾けたら?」に対して、頭の中で一回動かしてみて「こぼれる → 床が濡れる → 滑りやすくなる」と予測する。ここまで、現実のコップにはまだ触れていません。文章なら間違えても書き直せますし、回数も無限に試せます。物理世界はやり直しがきかないので、動かす前に結果が分かる仕組みが必要になります。これが世界モデルの役割です。
VLA ― 見て、言葉を理解し、動きを出す
VLA は Vision-Language-Action の略で、画像と言葉の指示を入力に、ロボットの動作を直接出力するモデルです。この呼び方は Google DeepMind が2023年に発表した RT-2 で広まりました。RT-2 は、Web規模のデータで事前学習した視覚言語モデル(VLM)にロボットのデータを組み合わせることで、VLM を「ロボットを直接制御できる VLA に変換できる」ことを示した研究です。
「コーヒーを入れて」という曖昧な指示から、キッチンを視覚で捉え、サーバーの場所を推論し、適切な力でカップを持ち、こぼさず注ぐ。一連の動作を言葉の指示だけで引き出せるところが、決められた動作を正確に繰り返す従来の産業用ロボットとの違いです。
2つの脳の役割分担
VLAモデルと世界モデルの役割は、下記のように言えます。
VLA(反射): 画像・言葉・センサから動きを直接出す。速い。ただし確率ベースで、根拠は説明しにくい
世界モデル(熟考): 行動の結果を起きる前に予測する。遅い。ただし物理法則に基づいて推論する
反射だけでは「100%に近い確実性」には届かないので、反射と先読みを組み合わせる研究が進んでいます。
VLM について
混同されがちですが、この後で触る Gemini Robotics ER 2 は、公式ドキュメントでは VLM(vision-language model) を自称しています。見て、考えて、座標や段取りを「言葉と数値で」返すモデルであって、ロボットの動きそのものは出しません。動きを出す VLA を指揮する側です。
Google が公開している Gemini Robotics の構成を、講座では次のように整理しました(公式ドキュメント・2026年8月時点)。
見て、考える(推論): Gemini Robotics ER 2(VLM)。座標・進捗判定・段取りを返す → API で使える。無料枠あり
動きを出す(VLA): Gemini Robotics 本体 / On-Device。ロボットの動作そのものを生成 → 非公開(パートナー限定)
世界モデル(結果を先に想像): Gemini Robotics には含まれない。DeepMind では Genie 系が研究中 → 一般公開なし
つまり、私たちが API で触れるのは、いまのところ「考える係」だけです。ER 2 が考え、(非公開の)VLA が動く。今回の講座は、その「考える側」が何を返すのかを確かめました。
Gemini Robotics ER 2 とは
Gemini Robotics ER 2 は、Google DeepMind が2026年7月30日に公開した、ロボット向けの推論モデルです(モデルカード)。ER は Embodied Reasoning(身体化された推論)の略で、Gemini 3.5 Flash をベースに、空間推論・動画の時間的理解・複数ステップの段取り・ツール呼び出しを強化したものです。標準の `gemini-robotics-er-2-preview` と、低遅延の双方向ストリーミング用 `gemini-robotics-er-2-streaming-preview` の2つのエンドポイントがあります。
ER 2 の特長は2つあります。1つは、普通のAIに写真を渡すと「説明」が返ってくるところ、ER 2 は「座標」を返せること。もう1つは、視覚の強化だけでなく Python の実行環境を備えていて、与えられた画像を自らコードで処理しながら読み取れることです。公式ドキュメントはこれを agentic vision と呼び、「答える前に、画像を加工しロジックを適用する Python コードを自分で書いて実行できる」と説明しています(Agentic vision)。
公式ドキュメントに挙がっている機能は次のとおりです。
ポインティング: 「水をやるならどこに差しますか」→ 画像上の点を `[y, x]` で返す
バウンディングボックス: 「センサはどこですか」→ 四角で囲んで返す
軌跡: 掴んでから置くまでの経路を点列で返す
動画のモーメント検出・進捗判定・成功判定: 「排出はいつ終わったか」「作業はどの段階か」
計器の読み取り: アナログメーターや液面計の値を読む
Agentic vision: 自分で Python コードを書いて実行し、画像を拡大・切り出ししてから答える。公式の例は基板の読み取り・計器読み・液量の測定など
タスクオーケストレーション: 空間推論と自前のロボットAPIを組み合わせて、長い手順を回す
座標は、画像の左上を 0、右下を 1000 とした比率で、y が先、x が後の `[y, x]` 形式で返ります。
無料枠で試せますが、回数の上限はかなり厳しめです(講座時点で1日20リクエスト)。講座では主に講師が動かしてその挙動の特徴を見せる構成にしました。なお、Google AI Studio では無料ユーザーは ER2 を使えないため、Colab から API で呼ぶ形で扱います。
Colab から ER 2 を呼ぶ
Google が公開している ER 2 入門ノートブック(Apache-2.0)を日本語化し、講座用の発展問題を足したものを GitHub に置いています。Colab から直接開けます。
https://colab.research.google.com/github/ptk-y-nakahira/iop-er2-handson
やることは、Google AI Studio で API キーを発行し、Colab 左の鍵アイコン(シークレット)に `GEMINI_API_KEY` として登録して「ノートブックからのアクセス」をONにし、上からセルを実行するだけです。最初のセルで「GitHub から読み込んだノートブック」の警告が出ますが、そのまま実行して構いません。
疎通が取れたら、写真を渡して「写っている物を全部指してください」と頼みます。`load_image` と `plot_points` はノートブック内のヘルパーで、画像を base64 にする処理と、返ってきた点を描く処理です。
from pydantic import BaseModel, Field
from typing import List
from google import genai
client = genai.Client(api_key=GEMINI_API_KEY)
MODEL_ID = "gemini-robotics-er-2-preview"
class PointItem(BaseModel):
point: List[int] = Field(description="[y, x] 形式、0-1000 に正規化")
label: str = Field(description="検出した物の名前(日本語で)")
class PointResponse(BaseModel):
items: List[PointItem]
img, img_b64 = load_image('demo-box-wide.jpg')
prompt = "写っている物を全部指してください。ラベルは、それぞれの物の名前を日本語で返してください。"
response = client.interactions.create(
model=MODEL_ID,
input=[{"type": "user_input", "content": [
{"type": "image", "data": img_b64, "mime_type": "image/png"},
{"type": "text", "text": prompt}
]}],
generation_config={"thinking_level": "low"},
response_format={
"type": "text", "mime_type": "application/json",
"schema": PointResponse.model_json_schema()
}
)
plot_points(img, response.output_text)`response_format` に Pydantic のスキーマを渡しているのは、座標を JSON で「必ずこの形で」返させて、後段の描画コードにそのまま渡すためです。`thinking_level` は考える深さで、`low / medium / high` から選べます。公式ドキュメントは medium をバランス点としていますが、ポインティングくらいの問いなら low で十分でした。
講座のデモ機(トウガラシの鉢を2つ並べた窓際の箱)を撮った写真に対する結果がこちらです。
「換気ファン」「給水ボトル」「マイコンボード」の3点とも、実物の位置を指していました。ラベルも日本語で、こちらが名付けていない物を自分で命名しています。
動画も理解できる
ER 2 が汎用モデルと違うところがわかりやすいのは、動画の内容理解でした。米農務省が公開している飼料ハーベスタの映像(9.9秒・パブリックドメイン)を渡し、「伴走するトラックへの排出はいつ終わったか」を聞きました。
比較としてClaude Opus 5 にきいたところ (動画を連続画像として提示) は「7.4秒まで続いている」と答え、ER 2 は「0.0〜5.0秒」と答えました。実際には5.2秒ごろに機械が止まりますが、その後1秒ほどは刈草の残りが舞っています。ER 2 は、刈草がまだ残る中で「機構が止まった時刻」を答えることができました。
自分で Python を書いて分析する ― Agentic Vision
ER 2 のもう一つの特長が、冒頭で触れた Agentic Vision です。API 呼び出しに `tools=[{"type": "code_execution"}]` を足すと、モデルは回答の途中で自分で Python コードを書いて実行できるようになります。画像を拡大・切り出しして読み直す、見つけた点から数値を計算する、といった作業を、こちらが手順を指示しなくても自分の判断で挟んでから答えます。
ノートブックには公式サンプル由来のセルを入れてあります。液面計の写真に「のぞき窓の上端・下端・液面の3点を見つけ、計算で液面の割合を求めてください」と頼むセルと、基板の写真の小さな型番を「Python で拡大・切り出し・回転して読み取ってください」と頼むセルです。どちらも、目視では読みにくい対象に「よく見るための前処理」をモデル自身にかけさせる使い方です。
発展として、この Agentic Vision でチャートを理解できるか試しました。時系列データベース CLOUDSHIP® の可視化画面 RealBoard® に、デモ機の実測1日分(温度A/B・ファン出力)を表示したダッシュボードのスクリーンショットをそのまま渡し、3つ質問します。
A の最高温度は何度で、何時ごろか(実測: 30.37℃・14:00)
A のファンが最初に動き出したのは何時ごろか(実測: 11:01)
A と B はどちらが高温で、差はどの時間帯に開いたか(実測: B が高温・最大差 1.60℃・13:33)
モデルはチャートを色相分析するなど読み取った値を数値の列に起こし、「11時から14時の範囲で A の最大値を探す」といったコードを書いて実行しながら答えを組み立てました。途中経過には、読み取った系列をモデルが自分で描き直したグラフも出てきます。
回答は「A の最高温度は約30.2℃、ピークは12:15〜13:30」「ファンは9:30ごろ小さく動き、11:00過ぎから本格的に作動」「B が高温、差は11〜15時に開き最大約1.5℃」。B が高温という関係、差が開いた時間帯、ファンの本格作動の時刻は実測と合いました。
フィジカルAIに限らず、様々な分野で応用が効きそうなモデルです。
AI に栽培の「方針」を決めさせる ― デモ温室
3つ目は、ER 2 に栽培の「方針」を決めさせるデモです。冒頭の写真の右の箱がそれで、観賞用トウガラシの鉢に、ESP32 と温湿度・土壌水分センサ、換気ファン、給水ポンプを付けてあります。左の箱は同じ条件で並べた対照区で、AI の判断は入れていません。
装置の中では、速さの違う2つの「輪」が回っています。速い輪は装置のもので、10秒〜10分ごとにセンサ値を方針と照らし、目標より暑ければファンを回し、土壌水分が目標帯の下限を割ったら決められた量だけ給水します。遅い輪が AI のもので、1日に数回、株の写真とセンサ・給水の履歴、それに前回の方針を渡して、目標温度・土壌水分の目標帯・1回の給水量という「方針」そのものを決めてもらいます。AI が決めた方針は指示シートに書き込まれ、装置が読みに来て自分の動きを変えます。
この「方針を決める役割」を ER 2 に任せています。Google Apps Script から呼び出す実装にしました。植物はそれほど頻繁に写真を分析する必要がないため、スマホで朝晩写真を撮り、それを Drive に入れました。ER 2 には最新の株の写真、箱の中と部屋の気温・湿度・飽差、土壌水分、前回の方針とその経過時間を1つのプロンプトにまとめ、JSON で返させます。返してもらう項目は、葉や実の観察、状態の分類、いま取るべき行動のほかに、`policy_status`(前回の方針を continue / change / done のどれにするか)、`soil_target_lo` / `soil_target_hi`(目標帯)、`hold_setpoint`(目標温度)、`dose_ml`(1回の量)です。まず「前回の方針を変えるか据え置くか」を決めさせてから、値を書かせます。
ER 2 が返した判断がこちらです(8月22日 9:27。写真は10分前に撮影)。
{
"plant_state": "healthy",
"observed": "ピンと張った元気な緑の葉と、しわのない鮮やかに赤く色づいた複数の実が観察される。",
"policy_status": "continue",
"policy_status_reason": "前回の方針により植物は非常に健康に保たれており、実測気温や飽差もほぼ適正範囲内にあるため、この方針を継続します。",
"action": "土壌水分が目標範囲まで低下するのを待つため、追加の給水を行わず静観してください。",
"reasoning": "植物の葉や実にしおれやしわはなく、非常に健康な状態が維持されている。土壌水分は85%と高めだが、目標帯(50〜70%)を超えているため潅水は自動停止しているはずであり、このまま土が乾くのを待つのが最適である。"
}「据え置き」なので装置には何も送られず、目標帯 50〜70%・目標温度 28℃・1回 10mL のまま動き続けます。
方針は AI が決めますが、その AI がはみ出せない「枠」をコードで規定しました。目標帯は 25〜75% の範囲、1回の給水は 50mL まで、給水後は30分あける、1日の総量は 300mL まで。AI が枠の外の値を書いても、装置は受け付けません。「AI が目標値を出し、実際の制御は装置が担う」という分け方は、施設園芸では2018年から続く Autonomous Greenhouse Challenge が同じ構造ですし、制御工学では監督制御、最近 AI の分野では 「モデルとハーネス」 という名前で呼ばれています。
講座をふりかえって
3つのハンズオンで、温湿度センサの値を自分のスプレッドシートにため、ロボット向けモデルに写真の中の座標を聞き、AIに植物を育てる方針を決めさせるところまでを体験しました。「AIの判断がそのままモノの動きになる」感覚と、「返ってきた答えを外から確かめる」という両方を扱いました。
フィジカルAIはまだ始まったばかりで、十分に触れる状況にはなっていないのですが、それでも、写真を渡して座標が返ってくる、動画を渡して「いつ」が返ってくる、という体験は、これまでの「説明を返すAI」とは手触りが違うことを実感していただけました。
同じ内容の平日版を 9月16日(水) に開催します(10:00〜12:00 準備編・現地のみ/13:00〜16:00 本編・現地+Teams)。IoP技術者コミュニティ会員の方は申込フォームからお申し込みください(締切 9月8日)。
手を動かしてAI活用を学ぶ ― Technovation Workshop
今回のように「実際にコードを動かしながら学ぶ」スタイルで、最先端のテクノロジーをビジネスの現場で活かすスキルを身につけられる体験型講座として、PROMPT-XはTechnovation Workshopを提供しています。「IoTとAI」「画像とAI」「データとAI」の3つのハンズオンプログラムで構成され、今回の記事で扱ったセンサーからのデータ収集や画像のAI読み取り、時系列データの活用なども、基礎から体系立てて学べます。エンジニアの方はもちろん、ビジネスの現場で課題解決にAIを役立てたい方にもおすすめです。
PROMPT-Xでは仲間を募集しています
PROMPT-Xは東京・鹿児島・高知に拠点を置いています。お客さまの現場に入り込み、業務課題に対して生成AIを含む最新技術をどう活かすかを一緒に考え、実装まで伴走するエンジニアを募集しています。地方拠点から全国の先進企業・自治体と直接取引を行い、上流設計から実装まで一気通貫で手がける環境です。物理世界とAIをつなぐ開発に興味がある方を歓迎します。
PROMPT-Xで働くことに興味がある方は、採用情報ページをご覧ください。鹿児島での募集はジョブアンテナ鹿児島もあわせてご覧いただけます。



コメント