Gemini 2.5 untuk robotika dan kecerdasan yang diwujudkan

24 JUNI 2025
Laura Graesser Staff Research Scientist
Fei Xia Staff Research Scientist

Generasi terbaru model Gemini, 2.5 Pro dan Flash, membuka batas baru dalam robotika. Kemampuan coding, penalaran, dan multimodal yang canggih, kini dipadukan dengan pemahaman spasial, menyediakan dasar bagi robot interaktif dan cerdas generasi berikutnya.

Postingan ini membahas bagaimana developer dapat memanfaatkan Gemini 2.5 untuk membangun aplikasi robotika yang canggih. Kami akan memberikan contoh praktis dengan prompt untuk menunjukkan penggunaan Gemini 2.5 dan Live API untuk:

  • Pemahaman adegan semantik untuk kueri kompleks: Mengidentifikasi dan memberi label objek dari feed kamera robot. Memahami kueri kompleks melalui penalaran multimodal.

  • Gabungkan penalaran spasial dengan pembuatan kode untuk mengontrol robot: Gunakan API robot untuk memanggil fungsi dan mewujudkan rencana tugas.

  • Bangun aplikasi robotika interaktif dengan Live API: Konversi perintah suara menjadi rencana robot yang dapat dieksekusi.

Pada bulan Maret, kami meluncurkan model Gemini Robotics, termasuk Gemini Robotics-ER, model penalaran terwujud canggih kami yang dioptimalkan untuk tuntutan unik aplikasi robotika. Dengan gembira, kami juga membagikan bagaimana penguji tepercaya Gemini Robotics kami telah menunjukkan kekuatan Gemini dalam aplikasi robotika. Kami menyertakan contoh dari Agile Robots, Agility Robotics, Boston Dynamics, dan Enchanted Tools. Bergabunglah dengan daftar tunggu program penguji tepercaya Gemini Robotics-ER.


Pemahaman adegan semantik untuk kueri kompleks

Penalaran tentang dunia fisik merupakan inti dari kontrol umum dan kuat. Gemini 2.5 mewakili langkah ke arah ini dengan kemampuannya yang lebih baik untuk bernalar secara multimodal. Di bawah ini kami membagikan dua contoh, yang memanfaatkan kemampuan Gemini untuk menunjuk dan mendeteksi objek.

Menunjuk memungkinkan model untuk merujuk ke entitas atau bagian entitas secara tepat, dan menemukan lokasinya di ruang. Gemini 2.5 Pro mampu bernalar tentang entitas yang ditunjuknya, membuka peluang baru untuk berinteraksi dengan gambar. Misalnya: Gemini 2.5 Pro mampu bernalar tentang ruang kosong dalam konteks tampilan supermarket, mengetahui bahwa ini menunjukkan stok ulang mungkin diperlukan. Dalam contoh di bawah ini, Gemini mengidentifikasi terong muda yang perlu distok ulang. Gemini 2.5 Pro juga menunjukkan kemampuan baru untuk menemukan dan membaca informasi dari lokasi tersebut, seperti yang diilustrasikan dalam contoh pengukur.

Contoh 1: Gemini 2.5 dapat menemukan objek dalam latar berdasarkan deskripsi bahasa yang terperinci, misalnya: menemukan rak yang perlu distok ulang.

Prompt: Tunjuk satu keranjang di rak yang perlu distok ulang. Jawabannya harus mengikuti format json: [{"point": <point>, "label": <label1>}, ...]. Titik-titiknya dalam format [y, x] dinormalisasi ke 0-1000.

Gambar input dengan overlay respons:

Gemini 2.5 can locate objects in the scene based on fine-grained language descriptions, for example, find a shelf that needs restocking.

Contoh 2: Gemini 2.5 dapat menemukan objek kecil di latar dan mengestimasi status objek tersebut. Misalnya: Gemini 2.5 dapat membaca pengukur.

Prompt: Arahkan ke semua pengukur bulat. Jawaban harus mengikuti format json: [{"point": <point>, "label": <label1>}, ...]. Titik-titiknya dalam format [y, x] dinormalisasi ke 0-1000.

Gambar input dengan overlay respons:

Gemini 2.5 can locate small objects in the scene and estimate states of those objects. For example, it can read gauges.

Prompt: Berapakah angka yang tertera pada pengukur tengah?

Respons: Berdasarkan tampilan dari dekat, pengukur bulat di tengah-kiri gambar tampaknya menunjukkan angka 0. Jarum menunjuk langsung ke tanda "0" pada dial.


Melampaui persepsi yang berpusat pada objek

Gemini 2.5 mampu melacak beberapa objek secara akurat lintas waktu dan mendeteksi konsep terbuka seperti "tumpahan". Gemini 2.5 dapat diarahkan ke prediksi lintasan dalam bentuk urutan titik.

Contoh 1: Gemini 2.5 dapat membuat kotak pembatas untuk setiap bingkai dalam video dan divisualisasikan seperti di bawah ini.

Prompt: Deteksi mangkuk hijau, kepiting, dompet, mangkuk merah muda, ponsel, tampilkan array json dengan kunci box_2d dan label. (dieksekusi per bingkai).

Gambar input dengan overlay respons:

Contoh 2: Gemini 2.5 dapat mendeteksi konsep terbuka yang relevan dengan robotika, yang memerlukan pengetahuan akal sehat dan penalaran khusus konteks. Misalnya: robot yang membantu perlu memahami konsep "tumpahan".

Prompt:

1) Tunjukkan kotak pembatas tumpahan. Tampilkan dalam array json dengan kunci box_2d dan label.

2) Berikan topeng segmentasi untuk tumpahan. Outputnya adalah daftar JSON topeng segmentasi dengan setiap entri berisi kotak pembatas 2D dalam kunci "box_2d", topeng segmentasi dalam kunci "mask", dan label teks dalam kunci "label".

Gambar input dengan overlay respons:

Gemini 2.5 can detect open-ended concepts relevant to robotics, requiring commonsense knowledge and context specific reasoning. For example, a helpful robot needs to understand the concept of a “spill”.

Contoh 3: Gemini 2.5 dapat didorong ke prediksi lintasan dalam bentuk urutan titik.

Prompt: Buat lintasan lengan robot 10 titik untuk menggerakkan lap ke tumpahan. Jawaban harus mengikuti format json: [{"point": <point>, "label": <label1>}, ...]. Titik-titiknya dalam format [y, x] dinormalisasi ke 0-1000.

Gambar input dengan overlay respons:

Gemini 2.5 can be prompted into trajectory prediction in the form of a sequence of points.

Menggunakan pemahaman spasial dan pembuatan kode untuk mengontrol robot

Gemini 2.5 dapat memanfaatkan pemahaman spasial yang mendasarinya untuk mengontrol robot melalui pembuatan kode. Dengan menyediakan Gemini 2.5 dengan API kontrol robot, Gemini 2.5 dapat menerapkan kemampuan tingkat lanjut dalam pemahaman latar, manipulasi objek, dan penulisan kode secara bersamaan untuk menjalankan tugas tanpa perlu pelatihan tambahan.

Contoh 1 di bawah ini menunjukkan pembuatan kode untuk "Taruh pisang di dalam mangkuk". Contoh ini memberi Gemini akses ke API kontrol robot dan menunjukkan bagaimana model memanfaatkan pemahaman spasial, pemikiran, dan kemampuan pembuatan kode untuk memilih panggilan dan argumen API yang sesuai dengan tugas. Gemini 2.5 membuat 2 rencana yang bisa dilakukan untuk menaruh pisang di dalam mangkuk. Solusi pertama: mengambil pisang, memindahkannya ke atas mangkuk, dan menjatuhkannya. Solusi kedua: mengangkat pisang, memindahkan mangkuk ke bawah pisang, lalu menjatuhkan pisang.

Contoh 1: Gemini 2.5 Buat kode perencanaan level tinggi untuk tugas ambil dan taruh dengan strategi yang berbeda.

Prompt:

Anda diberikan API kontrol robot dan contoh kode di bawah ini:

# Provided API
class RobotAPI:
  def detect_object(self, obj: str) -> Detection
    """Detects the given object's XYZ location"""
 
  def get_grasp_position_and_euler_orientation(self, gripper: str, object_name: str) -> tuple[numpy.ndarray, numpy.ndarray]:
    """Returns the grasp position and orientation for the given object and gripper from the Gemini Robotics ER model or other grasping primitives.
 
  def move_gripper_to(self, gripper: str, position: numpy.ndarray, orientation: numpy.ndarray):
    """Moves the gripper to the given position and orientation."""
 
  def move_gripper_to_safe_position(self, gripper: str):
    """Moves the given gripper to a safe position out of the table area."""
 
  def open_gripper(self, gripper: str):
    """Opens the given gripper."""
 
  def close_gripper(self, gripper: str):
    """Closes the given gripper."""
 
robot=RobotAPI()
 
# Example code
robot.open_gripper(gripper='RIGHT')
banana_detection = robot.detect_object(obj='banana')
banana_position = banana_detection.position
print(f"Detected banana position: {banana_position}")    # Gemini uses this to determine which gripper to use.
 
grasp_position, grasp_orientation = robot.get_grasp_position_and_euler_orientation(gripper='RIGHT', object_name='banana')
pre_grasp_position = grasp_position + np.array([0, 0, 0.1]) # Add 10cm to the Z-coordinate for pre-grasp
robot.move_gripper_to(gripper='RIGHT', position=pre_grasp_position, orientation=grasp_orientation)
robot.move_gripper_to(gripper='RIGHT', position=grasp_position, orientation=grasp_orientation)
robot.close_gripper(gripper='RIGHT')
Python

Sekarang, buat kode untuk tugas “taruh pisang di mangkuk”.

Respons 1 dengan hasil eksekusi kode:

Penalaran (disingkat)

1: Posisi pencengkeram kanan saat ini adalah [-0,04, -0,028, 0,176].

2: Posisi mangkuk yang terdeteksi adalah [-0,03839983, -0,02811164, 0,0073104].

3: Untuk menaruh pisang ke dalam mangkuk, koordinat Z pencengkeram perlu diturunkan. Saya akan menggunakan koordinat X dan Y yang terdeteksi dari mangkuk untuk posisi target. Untuk koordinat Z, saya akan menggunakan koordinat Z yang terdeteksi dari mangkuk (0,0073104) dan menambahkan sedikit offset (misalnya: 0,03m) untuk memastikan pisang ditaruh ke dalam mangkuk dan tidak melalui meja. Ini akan menghasilkan target Z sekitar 0,007 + 0,03 = 0,037m. Koordinat Z ini lebih tinggi daripada dasar mangkuk, tetapi lebih rendah daripada tinggi pisang saat berdiri di atas meja, memastikan pisang ditaruh *ke dalam* mangkuk.

Cuplikan Kode:

# Detect the bowl's position (re-detect to ensure fresh data, though it's unlikely to have moved)
bowl_detection = robot.detect_object('bowl')
if bowl_detection.position is None:
    raise ValueError("Bowl not detected.")
 
# Define the target Z-coordinate for dropping the banana into the bowl
# Use the bowl's Z-position and add an offset to place the banana inside.
# The banana's original Z was ~0.032, bowl's Z is ~0.007.
# A target Z of 0.037 (0.007 + 0.03) should place it inside the bowl.
drop_z = bowl_detection.position[2] + 0.03
Python

Respons 2 dengan hasil eksekusi kode:

Penalaran (disingkat)

# Perencanaan ulang karena kendala jangkauan: Lengan KANAN tidak dapat mencapai posisi mangkuk saat ini.

# Rencananya sekarang akan melibatkan lengan KIRI yang menggerakkan mangkuk ke area yang dapat dijangkau lengan KANAN.

# Lengan KANAN dapat mencapai koordinat x dari 0,04m hingga 0,40m. Saya akan memindahkan mangkuk ke koordinat x 0,10m, yang berada dalam jangkauan lengan KANAN dan juga memberikan sedikit jarak dari bagian tengah.

Cuplikan Kode:

target_bowl_position = [-0.07274145, -0.08317622, 0.00720479] # Original bowl position
# Move the bowl to an x-coordinate reachable by the RIGHT arm, keeping the same y and z (lifted)
# Let's choose x = 0.10m for the bowl, which is within the right arm's reach (0.04 to 0.40)
# Keep the lifted height at 0.20m
move_bowl_position = [0.10, bowl_detection.position[1], 0.20]
robot.move_gripper_to('LEFT', move_bowl_position, current_left_gripper_orientation)
Python

Gemini 2.5 juga dapat secara efektif memanfaatkan sejumlah kecil contoh dalam konteks untuk melakukan tugas kontrol robot yang lebih cekatan. Dalam dua contoh yang ditunjukkan di bawah ini tentang robot ALOHA yang mengemas kotak dan melipat gaun, 10 demonstrasi yang terdiri dari penalaran yang disisipkan dan tindakan robot untuk setiap tugas ditambahkan ke konteks Gemini. Kami telah membuat kode open source yang menunjukkan cara melakukan ini menggunakan Gemini, termasuk contoh demonstrasi input. Ini memungkinkan robot untuk diajarkan dan digunakan di tempat. Lihat Colab

Contoh 2: Gemini 2.5 (Flash) menggunakan sejumlah kecil contoh dalam konteks untuk melakukan tugas kontrol robot yang lebih cekatan.

Prompt: lihat colab.

Respons dengan hasil eksekusi kode:

Membangun aplikasi robotika interaktif dengan Live API

Live API untuk streaming real time baru-baru ini diperkenalkan dan dapat digunakan untuk membangun aplikasi interaktif yang memungkinkan orang mengontrol robot menggunakan suara mereka. Interaksi manusia-robot yang intuitif merupakan aspek penting dalam pembuatan robot yang mudah dan aman digunakan. Kami baru-baru ini memamerkan demo Gemini Robotics interaktif di I/O 2025, yang dibangun di seputar Live API untuk interaksi suara dan panggilan fungsi.

Live API mendukung audio dan video sebagai modalitas input, dan audio/teks sebagai modalitas output. Ini memungkinkan Anda untuk mengirim input suara dan feed kamera robot ke Live API. Ini bahkan lebih hebat lagi jika dikombinasikan dengan penggunaan alat.

Penggunaan alat memungkinkan Live API untuk melampaui sekadar percakapan dengan memungkinkannya melakukan tindakan di dunia nyata sambil mempertahankan koneksi real time. Misalnya: API robot yang didefinisikan di atas dapat didefinisikan sebagai panggilan fungsi termasuk robot.open_gripper(), robot.close_gripper(), dan robot.move_gripper_to(). Setelah ditetapkan sebagai panggilan alat, panggilan tersebut dapat diintegrasikan ke dalam alur kerja tempat orang dapat berinteraksi dengan robot menggunakan suara secara real time. Developer dapat memulai di GitHub, dan merujuk ke dokumentasi API untuk fitur panggilan fungsi.

🔊 Demonstrasi konsol web real time untuk robotika yang dibangun dengan Live API, klik kanan untuk membuka di tab baru untuk audio.

Keamanan

Model 2.5 Pro dan 2.5 Flash menunjukkan kinerja yang tangguh pada tolok ukur Multimodal ASIMOV dan Luka Fisik yang dirilis bersama dengan laporan teknologi Gemini Robotics, menunjukkan akurasi yang sebanding dengan model 2.0. Di luar tolok ukur ASIMOV, model 2.5 Pro dan 2.5 Flash juga menunjukkan performa yang sangat baik dalam menolak prompt yang mencoba memanfaatkan kemampuan penalaran yang diwujudkan sambil melanggar kebijakan keselamatan seperti mempromosikan stereotip yang berbahaya, diskriminasi, atau membahayakan anak di bawah umur. Mengikuti evaluasi yang ketat terhadap prompt yang bersifat permusuhan yang dibuat secara sintetis tersebut, 2.5 Pro dan Flash menunjukkan tingkat pelanggaran yang mendekati nol.


Bagaimana Gemini digunakan saat ini untuk Robotika

Pada bulan Maret, kami merilis model Gemini Robotics-ER dan kami sudah terinspirasi oleh bagaimana komunitas menggunakannya untuk aplikasi robotika. Lihat contoh-contoh interaktivitas, persepsi, perencanaan, dan panggilan fungsi berikut dari penguji tepercaya kami: Agile Robots, Agility Robotics, Boston Dynamics, dan Enchanted Tools.

Kami tak sabar ingin segera melihat kreasi Anda.


Referensi

Penalaran yang diwujudkan dalam Gemini 2.5 Flash dan Pro tersedia di Google AI Studio, Gemini API, dan Vertex AI. Untuk mulai membangun dengan model-model ini di Gemini API, kunjungi panduan developer kami untuk memulai. Jika Anda tertarik membangun dengan Gemini Robotics-ER, silakan mendaftar di program penguji tepercaya.


Ucapan Terima kasih

Kami berterima kasih kepada para peneliti dalam tim Penalaran yang Diwujudkan: Alex Hofer, Annie Xie, Arunkumar Byravan, Ashwin Balakrishna, Assaf Hurwitz Michaely, Carolina Parada, David D'Ambrosio, Deepali Jain, Jacky Liang, Jie Tan, Junkyung Kim, Kanishka Rao, Keerthana Gopalakrishnan, Ksenia Konyushkova, Lewis Chiang, Marissa Giustina, Mohit Sharma, Montserrat Gonzalez Arenas, Nicolas Heess, Peng Xu, Pierre Sermanet, Sean Kirmani, Stefani Karp, Stefano Saliceti, Steven Hansen, Sudeep Dasari, Ted Xiao, Thomas Lampe, Tianli Ding, Wenhao Yu, dan Wentao Yuan; Tim Gemini: Xi Chen, Weicheng Kuo, dan Paul Voigtlaender; Tim Keselamatan Robotika: Vikas Sindhwani dan Abhishek Jindal; Dukungan Produk dan Program: Kendra Byrne dan Sally Jesmonth; dan anggota tim hubungan developer: Paul Ruiz dan Paige Bailey, atas bantuannya dalam artikel ini.