Gemini Robotics ER

Os modelos Gemini Robotics ER (raciocínio incorporado) são modelos de visão-linguagem (VLMs) que permitem que os robôs percebam e interajam com o mundo físico. Eles interpretam dados visuais, realizam raciocínio espacial e temporal, planejam tarefas de várias etapas e orquestram robôs e ferramentas.

Modelos

O modelo Gemini Robotics ER 2 é o mais recente do Gemini Robotics. É nosso modelo de raciocínio atualizado que permite que os robôs entendam os ambientes com precisão. Ele é especializado em recursos de raciocínio incorporado, como orquestração agêntica de robôs (por exemplo, usando VLAs), compreensão de vídeo de robôs, incluindo compreensão de progresso e detecção de sucesso, leitura de instrumentos, apontamento e raciocínio espacial.

O modelo Gemini Robotics ER 2 apresenta dois endpoints de modelo:

  • gemini-robotics-er-2-preview: o modelo ER 2 padrão. Criado com base no Gemini 3.5 Flash, com melhorias no raciocínio espacial, na localização de momentos em vídeos, na classificação de progresso de vídeos, na orquestração de vários robôs e no uso de ferramentas em várias etapas.
  • gemini-robotics-er-2-streaming-preview: otimizado para streaming em tempo real usando a API Live. Use esse modelo para agentes robóticos de baixa latência que processam entradas contínuas de áudio e vídeo.

O Gemini Robotics ER 1.6 foi descontinuado em 31 de agosto de 2026. Se você ainda estiver usando o Gemini Robotics ER 1.6, faça upgrade para o Gemini Robotics ER 2 substituindo model="gemini-robotics-er-1.6-preview" por model="gemini-robotics-er-2-preview" ou model="gemini-robotics-er-2-streaming-preview" nas chamadas de API.

Teste o Gemini Robotics ER 2 no Google AI Studio

Recursos de robótica

O Gemini Robotics ER oferece suporte a uma variedade de recursos de raciocínio incorporado. Selecione um recurso para saber mais:

Capacidade Descrição Guia
Raciocínio espacial Aponte para objetos, rastreie-os em vídeos, detecte-os com caixas delimitadoras, planeje trajetórias. Raciocínio espacial
Visão agêntica Use a execução de código para aprimorar outros recursos com ferramentas de manipulação de imagens. Visão agêntica
Orquestração de tarefas Combine o raciocínio espacial com APIs de robôs personalizadas para concluir tarefas de longo alcance. Orquestração de tarefas
Streaming (somente endpoint de streaming do Gemini Robotics ER 2) Streaming bidirecional para agentes robóticos em tempo real com chamada de função de baixa latência. Streaming para robótica
Progresso do vídeo (somente Gemini Robotics ER 2) Descoberta de momentos e classificação de progresso em feeds de vídeo contínuos. Compreensão do vídeo

Antes de começar

Os modelos de ER do Gemini Robotics estão disponíveis na API Gemini Developer. Para começar, crie uma chave de API Gemini no Google AI Studio ou no console do Google Cloud e configure seu ambiente.

Para detalhes sobre tipos de chave, segurança e como configurar sua chave em Python, JavaScript e outras linguagens, consulte Como usar chaves de API Gemini.

Primeiros passos

O exemplo a seguir encontra objetos em uma imagem e retorna as coordenadas 2D normalizadas e os rótulos deles. É possível transmitir essa saída diretamente para uma API de robótica ou um modelo de VLA para gerar ações de robô.

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)

JavaScript

import { GoogleGenAI } from "@google/genai";

const 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.
`;
const client = new GoogleGenAI();

const uploadedFile = await client.files.upload({ file: "my-image.png" });

const imageResponse = await client.interactions.create({
  model: "gemini-robotics-er-2-preview",
  input: [
    {
      type: "image",
      uri: uploadedFile.uri,
      mime_type: uploadedFile.mimeType,
    },
    { type: "text", text: PROMPT },
  ],
  generation_config: { thinking_level: "high" },
});

console.log(imageResponse.output_text);

Java

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.GenerationConfig;
import com.google.genai.gaos.models.interactions.ImageContent;
import com.google.genai.gaos.models.interactions.ImageContentMimeType;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.TextContent;
import com.google.genai.gaos.models.interactions.ThinkingLevel;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
import java.util.List;

Client client = new Client();

String 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.";

File uploadedFile =
    client.files.upload(
        new java.io.File("my-image.png"),
        UploadFileConfig.builder().mimeType("image/png").build());

Content imageContent =
    ImageContent.builder()
        .uri(uploadedFile.uri().orElse(""))
        .mimeType(ImageContentMimeType.of(uploadedFile.mimeType().orElse("image/png")))
        .build();
Content textContent = TextContent.builder().text(prompt).build();

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-robotics-er-2-preview"))
        .input(InteractionsInput.ofContent(List.of(imageContent, textContent)))
        .generationConfig(
            GenerationConfig.builder().thinkingLevel(ThinkingLevel.HIGH).build())
        .build();

Interaction imageResponse =
    client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();

System.out.println(imageResponse.outputText().orElse(""));

Go

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
    "google.golang.org/genai/interactions/models/interactions"
    "google.golang.org/genai/interactions/models/operations"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    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.`

    uploadedFile, err := client.Files.UploadFromPath(ctx, "my-image.png", &genai.UploadFileConfig{
        MIMEType: "image/png",
    })
    if err != nil {
        log.Fatal(err)
    }

    res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model: interactions.Model("gemini-robotics-er-2-preview"),
            Input: interactions.NewInteractionsInput([]interactions.Content{
                interactions.NewContent(interactions.ImageContent{
                    URI:      genai.Ptr(uploadedFile.URI),
                    MimeType: genai.Ptr(interactions.ImageMimeTypeImagePng),
                }),
                interactions.NewContent(interactions.TextContent{
                    Text: prompt,
                }),
            }),
            GenerationConfig: &interactions.GenerationConfig{
                ThinkingLevel: interactions.ThinkingLevelHigh.ToPointer(),
            },
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.Interaction.OutputText != nil {
        fmt.Println(*res.Interaction.OutputText)
    }
}

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"
      }
    }
  }'

A saída será uma matriz JSON com objetos, cada um com um point (coordenadas [y, x] normalizadas) e um label que identifica o objeto.

JSON

[
  {"point": [376, 508], "label": "small banana"},
  {"point": [287, 609], "label": "larger banana"},
  {"point": [223, 303], "label": "pink starfruit"},
  {"point": [435, 172], "label": "paper bag"},
  {"point": [270, 786], "label": "green plastic bowl"},
  {"point": [488, 775], "label": "metal measuring cup"},
  {"point": [673, 580], "label": "dark blue bowl"},
  {"point": [471, 353], "label": "light blue bowl"},
  {"point": [492, 497], "label": "bread"},
  {"point": [525, 429], "label": "lime"}
]

A imagem a seguir é um exemplo de como esses pontos podem ser exibidos:

Um exemplo que mostra os pontos de objetos em uma imagem

Como funciona

O Gemini Robotics ER recebe entradas de imagem, vídeo ou áudio com comandos de linguagem natural. Ele identifica objetos, raciocina sobre o contexto da cena e as relações espaciais e retorna uma saída estruturada, como coordenadas ou caixas delimitadoras.

O Gemini Robotics ER também é agêntico: ele divide tarefas complexas em subtarefas e as executa chamando as funções do robô ou executando o código gerado. Por exemplo, "colocar a maçã na tigela" se torna uma sequência de etapas de localização, captura e colocação.

Consulte Chamada de função para saber como o Gemini executa chamadas de ferramentas.

Segurança

Embora o Gemini Robotics ER tenha sido criado com a segurança em mente, é sua responsabilidade manter um ambiente seguro ao redor do robô. Os modelos de IA generativa podem cometer erros, e os robôs físicos podem causar danos. Para saber mais, acesse a página de segurança da Gemini Robotics.

Práticas recomendadas

  1. Use uma linguagem simples e natural. Descreva o que você quer que o robô faça como se estivesse falando com uma pessoa. Se um termo não funcionar, tente um sinônimo comum.

  2. Otimize a entrada visual. Corte ou amplie objetos pequenos ou pouco nítidos antes de enviar a imagem. A iluminação e o baixo contraste de cores podem afetar a detecção.

  3. Divida tarefas complexas em etapas. Envie cada etapa como um comando separado para manter o modelo focado e melhorar a precisão.

  4. Faça várias consultas e calcule a média dos resultados para tarefas de alta precisão. Essa abordagem de consenso reduz a variância nas saídas espaciais.

Limitações

Considere as seguintes limitações ao desenvolver com o Gemini Robotics ER:

  • Restrições de chave de API:a API Gemini não aceita solicitações de chaves de API irrestritas e retorna um erro 403 Forbidden. Proteja sua chave de API adicionando restrições no AI Studio. Consulte Proteger chaves de API irrestritas para mais detalhes.
  • Latência x desempenho:consultas complexas, entradas de alta resolução ou níveis de raciocínio elevados podem aumentar o tempo de processamento. Para o nível de raciocínio, use o médio para um bom equilíbrio entre latência e desempenho.
  • Alucinações:como todos os modelos de linguagem grandes, os modelos de ER da Gemini Robotics podem, às vezes, "alucinar" ou fornecer informações incorretas, especialmente para comandos ambíguos ou entradas fora da distribuição.
  • Dependência da qualidade do comando:a qualidade da saída depende da clareza do comando de entrada. Use comandos específicos e bem estruturados.
  • Custo computacional:a execução do modelo, especialmente com entradas de vídeo ou thinking_budget alto, consome recursos computacionais e gera custos. Consulte a página Raciocínio para mais detalhes.
  • Tipos de entrada:consulte os tópicos a seguir para saber mais sobre as limitações de cada modo.

Aviso de privacidade

Você reconhece que os modelos mencionados neste documento (os "Modelos de Robótica") usam dados de vídeo e áudio para operar e mover seu hardware de acordo com suas instruções. Portanto, você pode operar os Modelos de Robótica de modo que dados de pessoas identificáveis, como voz, imagens e dados de semelhança ("Dados Pessoais"), sejam coletados pelos Modelos de Robótica. Se você optar por operar os Modelos de Robótica de uma maneira que colete Dados Pessoais, você concorda que não permitirá que nenhuma pessoa identificável interaja com os Modelos de Robótica ou esteja presente na área ao redor deles, a menos que e até que essas pessoas identificáveis tenham sido suficientemente notificadas e tenham consentido com o fato de que seus Dados Pessoais podem ser fornecidos e usados pelo Google, conforme descrito nos Termos Adicionais de Serviço da API Gemini, disponíveis em https://ai.google.dev/gemini-api/terms (os "Termos"), incluindo de acordo com a seção intitulada "Como o Google usa seus dados". Você vai garantir que esse aviso permita a coleta e o uso de Dados Pessoais, conforme descrito nos Termos, e vai empregar esforços comercialmente razoáveis para minimizar a coleta e a distribuição de Dados Pessoais usando técnicas como desfoque de rosto e operação dos Modelos de Robótica em áreas que não contenham pessoas identificáveis, na medida do possível.

Preços

Para informações detalhadas sobre preços e regiões disponíveis, consulte a página de preços.

Endpoints de modelos

Pré-lançamento do Gemini Robotics ER 2

Propriedade Descrição
Código do modelo gemini-robotics-er-2-preview
Tipos de dados aceitos

Entradas (link em inglês)

Texto, imagens, vídeo, áudio

Saída

Texto

Limites de tokens[*]

Limite de tokens de entrada

131.072

Limite de tokens de saída

65.536

Recursos

Geração de áudio sintético

incompatível

Armazenamento em cache

Compatível

Execução de código

Compatível

Uso de computador

Compatível

Pesquisa de arquivos

Compatível

Chamadas de função

Compatível

Embasamento com o Google Maps

Compatível

Geração de imagens

incompatível

API Live

incompatível

Embasamento da pesquisa

Compatível

Respostas estruturadas

Compatível

Raciocínio

Compatível

Contexto do URL

Compatível

Opções de consumo

API Batch

Compatível

Inferência Flex

incompatível

Inferência de prioridade

incompatível

Versões
Leia os padrões de versão do modelo para mais detalhes.
  • Visualização: gemini-robotics-er-2-preview
Atualização mais recente Julho de 2026
Card de modelo Card de modelo

Pré-lançamento de streaming do Gemini Robotics ER 2

Propriedade Descrição
Código do modelo gemini-robotics-er-2-streaming-preview
Tipos de dados aceitos

Entradas (link em inglês)

Texto, imagens, vídeo, áudio

Saída

Texto

Limites de tokens[*]

Limite de tokens de entrada

131.072

Limite de tokens de saída

65.536

Recursos

Geração de áudio sintético

incompatível

Armazenamento em cache

incompatível

Execução de código

incompatível

Uso de computador

incompatível

Pesquisa de arquivos

incompatível

Chamadas de função

Compatível

Embasamento com o Google Maps

incompatível

Geração de imagens

incompatível

API Live

Compatível

Embasamento da pesquisa

Compatível

Respostas estruturadas

incompatível

Raciocínio

Compatível

Contexto do URL

incompatível

Opções de consumo

API Batch

incompatível

Inferência Flex

incompatível

Inferência de prioridade

incompatível

Versões
Leia os padrões de versão do modelo para mais detalhes.
  • Visualização: gemini-robotics-er-2-streaming-preview
Atualização mais recente Julho de 2026
Card de modelo Card de modelo

Pré-lançamento do Gemini Robotics ER 1.6

Propriedade Descrição
Código do modelo gemini-robotics-er-1.6-preview
Tipos de dados aceitos

Entradas (link em inglês)

Texto, imagens, vídeo, áudio

Saída

Texto

Limites de tokens[*]

Limite de tokens de entrada

131.072

Limite de tokens de saída

65.536

Recursos

Geração de áudio sintético

incompatível

Armazenamento em cache

Compatível

Execução de código

Compatível

Uso de computador

Compatível

Pesquisa de arquivos

Compatível

Chamadas de função

Compatível

Embasamento com o Google Maps

Compatível

Geração de imagens

incompatível

API Live

incompatível

Embasamento da pesquisa

Compatível

Respostas estruturadas

Compatível

Raciocínio

Compatível

Contexto do URL

Compatível

Opções de consumo

API Batch

Compatível

Inferência Flex

incompatível

Inferência de prioridade

incompatível

Versões
Leia os padrões de versão do modelo para mais detalhes.
  • Desligar: gemini-robotics-er-1.6-preview
Atualização mais recente Dezembro de 2025
Limite de conhecimento Janeiro de 2025

A seguir