Gemini Robotics ER

Model Gemini Robotics ER (embodied reasoning) adalah model vision-language (VLM) yang memungkinkan robot memahami dan berinteraksi dengan dunia fisik. Model ini menafsirkan data visual, melakukan penalaran spasial dan temporal, merencanakan tugas multilangkah, serta mengorkestrasi robot dan alat.

Model

Model Gemini Robotics ER 2 adalah model terbaru di Gemini Robotics. Model penalaran terbaru kami yang memungkinkan robot memahami lingkungannya secara akurat. Model ini mengkhususkan diri dalam kemampuan penalaran yang diwujudkan, seperti orkestrasi agen robot (misalnya, menggunakan VLA), pemahaman video robot termasuk pemahaman progres dan deteksi keberhasilan, pembacaan instrumen, penunjukan, dan penalaran spasial.

Model Gemini Robotics ER 2 memperkenalkan dua endpoint model:

  • gemini-robotics-er-2-preview: Model ER 2 standar. Dibuat berdasarkan Gemini 3.5 Flash dengan peningkatan penalaran spasial, penemuan momen video, klasifikasi progres video, orkestrasi multi-robot, dan penggunaan alat multi-langkah.
  • gemini-robotics-er-2-streaming-preview: Dioptimalkan untuk streaming real-time menggunakan Live API. Gunakan model ini untuk agen robot dengan latensi rendah yang memproses input audio dan video berkelanjutan.

Gemini Robotics ER 1.6 telah tidak digunakan lagi pada 31 Agustus 2026. Jika Anda masih menggunakan Gemini Robotics ER 1.6, upgrade ke Gemini Robotics ER 2 dengan mengganti model="gemini-robotics-er-1.6-preview" dengan model="gemini-robotics-er-2-preview" atau model="gemini-robotics-er-2-streaming-preview" dalam panggilan API Anda.

Coba Gemini Robotics ER 2 di Google AI Studio

Kemampuan robotika

Gemini Robotics ER mendukung berbagai kemampuan penalaran yang diwujudkan. Pilih kemampuan untuk mempelajari lebih lanjut:

Kemampuan Deskripsi Panduan
Penalaran spasial Menunjuk ke objek, melacaknya dalam video, mendeteksi dengan kotak pembatas, merencanakan lintasan. Penalaran spasial
Visi agentic Gunakan eksekusi kode untuk meningkatkan kemampuan lainnya dengan memanfaatkan alat manipulasi gambar. Visi agentic
Orkestrasi tugas Menggabungkan penalaran spasial dengan API robot kustom untuk menyelesaikan tugas jangka panjang. Orkestrasi tugas
Streaming (khusus endpoint Streaming Gemini Robotics ER 2) Streaming dua arah untuk agen robot real-time dengan pemanggilan fungsi berlatensi rendah. Streaming untuk robotika
Progres video (khusus Gemini Robotics ER 2) Penemuan momen dan klasifikasi progres dari feed video berkelanjutan. Pemahaman video

Sebelum memulai

Model ER Gemini Robotics tersedia melalui Gemini Developer API. Untuk memulai, buat kunci Gemini API dari Google AI Studio atau Konsol Google Cloud, dan siapkan lingkungan Anda.

Untuk mengetahui detail tentang jenis kunci, keamanan, dan cara mengonfigurasi kunci Anda di Python, JavaScript, dan bahasa lainnya, lihat Menggunakan kunci Gemini API.

Memulai

Contoh berikut menemukan objek dalam gambar dan menampilkan koordinat dan label 2D yang dinormalisasi. Anda dapat meneruskan output ini langsung ke API robotika atau model VLA untuk menghasilkan tindakan 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)

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

Outputnya akan berupa array JSON yang berisi objek, masing-masing dengan point (koordinat [y, x] yang dinormalisasi) dan label yang mengidentifikasi objek.

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

Gambar berikut adalah contoh cara menampilkan titik-titik ini:

Contoh yang menampilkan titik objek dalam gambar

Cara kerjanya

Gemini Robotics ER menerima input gambar, video, atau audio dengan perintah bahasa alami. Model ini mengidentifikasi objek, mempertimbangkan konteks adegan dan hubungan spasial, serta menampilkan output terstruktur seperti koordinat atau kotak pembatas.

Gemini Robotics ER juga bersifat agentic: model ini memecah tugas kompleks menjadi sub-tugas dan mengeksekusinya dengan memanggil fungsi robot Anda atau menjalankan kode yang dihasilkan. Misalnya, "letakkan apel di mangkuk" menjadi urutan langkah menemukan, menggenggam, dan menempatkan.

Lihat Pemanggilan fungsi untuk mengetahui detail tentang cara Gemini menjalankan panggilan alat.

Keamanan

Meskipun Gemini Robotics ER dibuat dengan mempertimbangkan keselamatan, Anda bertanggung jawab untuk menjaga lingkungan yang aman di sekitar robot. Model AI generatif dapat membuat kesalahan, dan robot fisik dapat menyebabkan kerusakan. Untuk mempelajari lebih lanjut, buka halaman keamanan Gemini Robotics.

Praktik terbaik

  1. Gunakan bahasa yang sederhana dan alami. Jelaskan tindakan yang Anda inginkan dari robot seperti yang Anda lakukan kepada seseorang. Jika istilah tidak berfungsi, coba sinonim yang umum.

  2. Mengoptimalkan input visual. Pangkas atau perbesar objek kecil atau tidak jelas sebelum mengirim gambar. Pencahayaan dan kontras warna yang rendah dapat memengaruhi deteksi.

  3. Uraikan tugas yang kompleks menjadi beberapa langkah. Kirim setiap langkah sebagai perintah terpisah agar model tetap fokus dan meningkatkan akurasi.

  4. Buat kueri beberapa kali dan hitung rata-rata hasilnya untuk tugas yang memerlukan presisi tinggi. Pendekatan konsensus ini mengurangi varians pada output spasial.

Batasan

Pertimbangkan batasan berikut saat mengembangkan dengan Gemini Robotics ER:

  • Pembatasan kunci API: Gemini API tidak menerima permintaan dari kunci API yang tidak dibatasi dan menampilkan error 403 Forbidden. Amankan kunci API Anda dengan menambahkan batasan di AI Studio. Lihat Mengamankan kunci API yang tidak dibatasi untuk mengetahui detailnya.
  • Latensi vs performa: Kueri yang kompleks, input beresolusi tinggi, atau tingkat penalaran yang tinggi dapat menyebabkan peningkatan waktu pemrosesan. Untuk tingkat penalaran, gunakan sedang untuk keseimbangan yang baik antara latensi dan performa.
  • Halusinasi: Seperti semua model bahasa besar, model ER Gemini Robotics terkadang dapat "berhalusinasi" atau memberikan informasi yang salah, terutama untuk perintah yang ambigu atau input di luar distribusi.
  • Ketergantungan pada kualitas perintah: Kualitas output bergantung pada kejelasan perintah input. Gunakan perintah yang spesifik dan terstruktur dengan baik.
  • Biaya komputasi: Menjalankan model, terutama dengan input video atau thinking_budget yang tinggi, akan menggunakan resource komputasi dan menimbulkan biaya. Lihat halaman Penalaran untuk mengetahui detail selengkapnya.
  • Jenis input: Lihat topik berikut untuk mengetahui detail tentang batasan untuk setiap mode.

Pemberitahuan Privasi

Anda memahami bahwa model yang dirujuk dalam dokumen ini ("Model Robotika") memanfaatkan data video dan audio untuk mengoperasikan dan menggerakkan hardware Anda sesuai dengan petunjuk Anda. Oleh karena itu, Anda dapat mengoperasikan Model Robotika sedemikian rupa sehingga data dari orang yang dapat diidentifikasi, seperti data suara, gambar, dan kemiripan ("Data Pribadi"), akan dikumpulkan oleh Model Robotika. Jika Anda memilih untuk mengoperasikan Model Robotika dengan cara yang mengumpulkan Data Pribadi, Anda setuju bahwa Anda tidak akan mengizinkan orang yang dapat diidentifikasi untuk berinteraksi dengan, atau berada di area sekitar, Model Robotika, kecuali dan hingga orang yang dapat diidentifikasi tersebut telah diberi tahu secara memadai dan menyetujui fakta bahwa Data Pribadi mereka dapat diberikan kepada dan digunakan oleh Google sebagaimana diuraikan dalam Persyaratan Layanan Tambahan Gemini API yang dapat ditemukan di https://ai.google.dev/gemini-api/terms ("Persyaratan"), termasuk sesuai dengan bagian berjudul "Cara Google Menggunakan Data Anda". Anda akan memastikan bahwa pemberitahuan tersebut mengizinkan pengumpulan dan penggunaan Data Pribadi sebagaimana diuraikan dalam Persyaratan, dan Anda akan menggunakan upaya yang wajar secara komersial untuk meminimalkan pengumpulan dan distribusi Data Pribadi dengan menggunakan teknik seperti pemburaman wajah dan mengoperasikan Model Robotika di area yang tidak berisi orang yang dapat diidentifikasi sejauh yang dapat dilakukan.

Harga

Untuk mengetahui informasi mendetail tentang harga dan region yang tersedia, lihat halaman harga.

Endpoint model

Pratinjau Gemini Robotics ER 2

Properti Deskripsi
Kode model gemini-robotics-er-2-preview
Jenis data yang didukung

Input

Teks, gambar, video, audio

Output

Teks

Batas token[*]

Batas token input

131.072

Batas token output

65.536

Kemampuan

Pembuatan audio

Tidak didukung

Caching

Didukung

Eksekusi kode

Didukung

Penggunaan komputer

Didukung

Penelusuran file

Didukung

Pemanggilan fungsi

Didukung

Grounding dengan Google Maps

Didukung

Pembuatan gambar

Tidak didukung

Live API

Tidak didukung

Grounding penelusuran

Didukung

Output terstruktur

Didukung

Penalaran

Didukung

Konteks URL

Didukung

Opsi pemakaian

Batch API

Didukung

Inferensi Flex

Tidak didukung

Inferensi prioritas

Tidak didukung

Versi
Baca pola versi model untuk mengetahui detail selengkapnya.
  • Pratinjau: gemini-robotics-er-2-preview
Pembaruan terbaru Juli 2026
Kartu model Kartu model

Pratinjau Streaming Gemini Robotics ER 2

Properti Deskripsi
Kode model gemini-robotics-er-2-streaming-preview
Jenis data yang didukung

Input

Teks, gambar, video, audio

Output

Teks

Batas token[*]

Batas token input

131.072

Batas token output

65.536

Kemampuan

Pembuatan audio

Tidak didukung

Caching

Tidak didukung

Eksekusi kode

Tidak didukung

Penggunaan komputer

Tidak didukung

Penelusuran file

Tidak didukung

Pemanggilan fungsi

Didukung

Grounding dengan Google Maps

Tidak didukung

Pembuatan gambar

Tidak didukung

Live API

Didukung

Grounding penelusuran

Didukung

Output terstruktur

Tidak didukung

Penalaran

Didukung

Konteks URL

Tidak didukung

Opsi pemakaian

Batch API

Tidak didukung

Inferensi Flex

Tidak didukung

Inferensi prioritas

Tidak didukung

Versi
Baca pola versi model untuk mengetahui detail selengkapnya.
  • Pratinjau: gemini-robotics-er-2-streaming-preview
Pembaruan terbaru Juli 2026
Kartu model Kartu model

Gemini Robotics ER 1.6 Preview

Properti Deskripsi
Kode model gemini-robotics-er-1.6-preview
Jenis data yang didukung

Input

Teks, gambar, video, audio

Output

Teks

Batas token[*]

Batas token input

131.072

Batas token output

65.536

Kemampuan

Pembuatan audio

Tidak didukung

Caching

Didukung

Eksekusi kode

Didukung

Penggunaan komputer

Didukung

Penelusuran file

Didukung

Pemanggilan fungsi

Didukung

Grounding dengan Google Maps

Didukung

Pembuatan gambar

Tidak didukung

Live API

Tidak didukung

Grounding penelusuran

Didukung

Output terstruktur

Didukung

Penalaran

Didukung

Konteks URL

Didukung

Opsi pemakaian

Batch API

Didukung

Inferensi Flex

Tidak didukung

Inferensi prioritas

Tidak didukung

Versi
Baca pola versi model untuk mengetahui detail selengkapnya.
  • Matikan: gemini-robotics-er-1.6-preview
Pembaruan terbaru Desember 2025
Batas informasi Januari 2025

Langkah berikutnya