I modelli Gemini Robotics ER (embodied reasoning) sono modelli di visione e linguaggio (VLM) che consentono ai robot di percepire e interagire con il mondo fisico. Interpretano i dati visivi, eseguono ragionamenti spaziali e temporali, pianificano attività in più fasi e coordinano robot e strumenti.
Modelli
Il modello Gemini Robotics ER 2 è l'ultimo modello di Gemini Robotics. Si tratta del nostro modello di ragionamento aggiornato che consente ai robot di comprendere con precisione il loro ambiente. È specializzato in funzionalità di ragionamento basate sull'interazione con il mondo fisico, come l'orchestrazione di robot da parte di agenti (ad es. tramite VLA), la comprensione di video di robot, inclusi la comprensione dello stato di avanzamento e il rilevamento del successo, la lettura di strumenti, il puntamento e il ragionamento spaziale.
Il modello Gemini Robotics ER 2 introduce due endpoint del modello:
gemini-robotics-er-2-preview: il modello ER 2 standard. Si basa su Gemini 3.5 Flash con ragionamento spaziale migliorato, ricerca di momenti video, classificazione dell'avanzamento dei video, orchestrazione multi-robot e utilizzo di strumenti in più passaggi.gemini-robotics-er-2-streaming-preview: ottimizzato per lo streaming in tempo reale tramite l'API Live. Utilizza questo modello per agenti robot a bassa latenza che elaborano input audio e video continui.
Se utilizzi Gemini Robotics ER 1.6, esegui l'upgrade a Gemini Robotics ER 2 sostituendo
model="gemini-robotics-er-1.6-preview" con
model="gemini-robotics-er-2-preview" o
model="gemini-robotics-er-2-streaming-preview" nelle chiamate API. Tieni presente che
il modello Gemini Robotics ER 1.6 verrà ritirato alla
fine di agosto.
Prova Gemini Robotics ER 2 in Google AI Studio
Funzionalità di robotica
Gemini Robotics ER supporta una serie di funzionalità di ragionamento basate sull'interazione con il mondo fisico. Seleziona una funzionalità per saperne di più:
| Capacità | Descrizione | Guida |
|---|---|---|
| Ragionamento spaziale | Punta agli oggetti, monitorali nel video, rilevati con riquadri di delimitazione, pianifica le traiettorie. | Ragionamento spaziale |
| Agentic Vision | Utilizza l'esecuzione del codice per migliorare altre funzionalità sfruttando gli strumenti di manipolazione delle immagini. | Visione agentica |
| Orchestrazione delle attività | Combina il ragionamento spaziale con le API robot personalizzate per completare attività a lungo termine. | Orchestrazione delle attività |
| Streaming (solo endpoint di streaming Gemini Robotics ER 2) | Streaming bidirezionale per agenti robot in tempo reale con chiamate di funzioni a bassa latenza. | Streaming per la robotica |
| Avanzamento video (solo Gemini Robotics ER 2) | Ricerca dei momenti e classificazione dei progressi dai feed video continui. | Comprensione dei video |
Per iniziare
L'esempio seguente trova gli oggetti in un'immagine e restituisce le relative coordinate e le relative etichette 2D normalizzate. Puoi passare questo output direttamente a un'API di robotica o a un modello VLA per generare azioni del robot.
Python
from google import genai
PROMPT = """
Point to no more than 10 items in the image. The label returned
should be an identifying name for the object detected.
The answer should follow the json format: [{"point": <point>,
"label": <label1>}, ...]. The points are in [y, x] format
normalized to 0-1000.
"""
client = genai.Client()
uploaded_file = client.files.upload(file="my-image.png")
image_response = client.interactions.create(
model="gemini-robotics-er-2-preview",
input=[
{
"type": "image",
"uri": uploaded_file.uri,
"mime_type": uploaded_file.mime_type
},
{"type": "text", "text": PROMPT}
],
generation_config={"thinking_level": "high"},
)
print(image_response.output_text)
REST
# First, ensure you have the image file locally.
# Encode the image to base64
IMAGE_BASE64=$(base64 -w 0 my-image.png)
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-robotics-er-2-preview",
"input": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "'"${IMAGE_BASE64}"'"
}
},
{
"text": "Point to no more than 10 items in the image. The label returned should be an identifying name for the object detected. The answer should follow the json format: [{\"point\": [y, x], \"label\": <label1>}, ...]. The points are in [y, x] format normalized to 0-1000."
}
]
},
"generation_config": {
"thinking_config": {
"thinking_level": "high"
}
}
}'
L'output sarà un array JSON contenente oggetti, ognuno con un point
(coordinate [y, x] normalizzate) e un label che identifica l'oggetto.
JSON
[
{"point": [376, 508], "label": "small banana"},
{"point": [287, 609], "label": "larger banana"},
{"point": [223, 303],