Présentation de Gemini Robotics ER 2

Gemini Robotics ER est un modèle de vision-langage (VLM) qui dote la robotique de capacités de raisonnement avancé sur le monde physique. Le modèle interprète les données visuelles, effectue un raisonnement spatial et temporel, planifie des tâches en plusieurs étapes, et orchestre les robots et les outils.

Modèles

Gemini Robotics ER 2 est une mise à jour de notre modèle de raisonnement qui fournit un raisonnement précis sur l'environnement physique d'un robot. Il est spécialisé dans les capacités de raisonnement incarné, telles que l'orchestration agentique de robots (par exemple, à l'aide de modèles vision-langage-action (VLA)), la compréhension de vidéos de robots (y compris la compréhension de la progression et la détection de la réussite), la lecture d'instruments, le pointage et le raisonnement spatial.

Le modèle suivant est disponible en version preview :

  • gemini-robotics-er-2-preview : s'appuie sur Gemini 3.5 Flash avec un raisonnement spatial amélioré, la recherche de moments dans les vidéos, la classification de la progression des vidéos, l'orchestration multi-robot et l'utilisation d'outils en plusieurs étapes. Pour connaître les caractéristiques techniques, les limites de jetons et de quotas, les fonctionnalités compatibles, la disponibilité régionale et les tarifs, consultez la page Informations sur le modèle Gemini Robotics ER 2.

Ce guide utilise le SDK Google Gen AI avec Gemini Enterprise Agent Platform. Chaque exemple initialise le client avec enterprise=True et s'authentifie avec les identifiants Google Cloud, ce qui vous permet d'appeler le modèle à l'aide de votre propre projet Google Cloud .

Fonctionnalités de robotique

Le tableau suivant récapitule les principales fonctionnalités de Gemini Robotics ER 2 :

Capacité Description Guide
Raisonnement spatial Pointez sur des objets, suivez-les dans une vidéo, détectez-les avec des cadres de délimitation et planifiez des trajectoires. Raisonnement spatial
Exécution de code agentique Utilisez l'exécution de code pour zoomer/recadrer des images, lire des instruments et annoter des scènes. Capacités agentives
Orchestration des tâches Combinez le raisonnement spatial avec des API de robot personnalisées pour effectuer des tâches à long horizon. Orchestration des tâches
Compréhension des vidéos Détection de moments et classification de la progression à partir de flux vidéo continus. Compréhension des vidéos

Avant de commencer

Agent Platform s'authentifie avec des identifiants Google Cloud, et non avec une clé API Gemini. Effectuez la configuration suivante avant d'exécuter les exemples :

  1. Installez le SDK Google Gen AI.

    pip install --upgrade google-genai
    
  2. Activez l'API dans votre projet Google Cloud et assurez-vous de disposer d'un ID de projet. Vous pouvez utiliser un projet existant ou en créer un.

  3. Authentifiez-vous avec les Identifiants par défaut de l'application (ADC). Pour le développement local, exécutez :

    gcloud auth application-default login
    
  4. Initialisez le client avec le backend Agent Platform. Tous les exemples Python de cette page utilisent le client suivant. Définissez donc l'ID de votre projet :

    from google import genai
    
    client = genai.Client(
        enterprise=True,
        project="your-project-id",
        location="global",
    )
    

    Vous pouvez également définir la variable d'environnement GOOGLE_GENAI_USE_ENTERPRISE=True au lieu de transmettre enterprise=True au client.

Commencer

L'exemple suivant recherche des objets dans une image et renvoie leurs coordonnées 2D normalisées et leurs étiquettes. Vous pouvez transmettre ce résultat directement à une API de robotique ou à un modèle vision-langage-action (VLA) pour générer des actions de robot.

Python

from google import genai
from google.genai import types

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(
    enterprise=True,
    project="your-project-id",
    location="global",
)

# Load your image
with open("my-image.png", 'rb') as f:
    image_bytes = f.read()

image_response = client.models.generate_content(
    model="gemini-robotics-er-2-preview",
    contents=[
        types.Part.from_bytes(
            data=image_bytes,
            mime_type='image/png',
        ),
        PROMPT
    ],
    config = types.GenerateContentConfig(
        temperature=1.0,
        thinking_config=types.ThinkingConfig(
            thinking_level=types.ThinkingLevel.HIGH
        ),
    )
)

print(image_response.text)

REST

# First, ensure you have the image file locally.
# Encode the image to base64
IMAGE_BASE64=$(base64 -w 0 my-image.png)

# Set your Google Cloud project and location.
export PROJECT_ID="your-project-id"
export LOCATION="global"
export MODEL="gemini-robotics-er-2-preview"

# For the "global" location, use the aiplatform.googleapis.com host.
# For a regional location, prefix the host with the region, for example:
# https://us-central1-aiplatform.googleapis.com

curl -X POST \
  "https://aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL}:generateContent" \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "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."
          }
        ]
      }
    ],
    "generationConfig": {
      "temperature": 1.0,
      "thinkingConfig": {
        "thinkingLevel": "HIGH"
      }
    }
  }'

Le résultat sera un tableau JSON contenant des objets, chacun avec un point (coordonnées [y, x] normalisées) et un label identifiant l'objet.

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

L'image suivante montre un exemple d'affichage de ces points :

Exemple affichant les points des objets dans une image

Fonctionnement

Gemini Robotics ER 2 accepte des images, des vidéos ou des fichiers audio en entrée avec des requêtes en langage naturel. Il identifie les objets, raisonne sur le contexte de la scène et les relations spatiales, et renvoie une sortie structurée, comme des coordonnées ou des cadres de délimitation.

Il est également agentique : il décompose les tâches complexes en sous-tâches et les exécute en appelant vos fonctions de robot ou en exécutant le code généré. Par exemple, "mettre la pomme dans le bol" devient une séquence d'étapes de localisation, de saisie et de placement.

Pour en savoir plus sur le fonctionnement de l'appel de fonction avec Gemini, consultez la page Appel de fonction.

Sécurité

Gemini Robotics ER 2 est conçu pour être sûr, mais il est de votre responsabilité de maintenir un environnement sécurisé autour du robot. Les modèles d'IA générative peuvent faire des erreurs, et les robots physiques peuvent causer des dommages. La sécurité est une priorité, et rendre les modèles d'IA générative sûrs lorsqu'ils sont utilisés avec la robotique réelle est un domaine actif et essentiel de nos recherches. Pour en savoir plus, consultez la page sur la sécurité de la robotique de Google DeepMind.

Bonnes pratiques

Suivez ces bonnes pratiques pour obtenir les meilleurs résultats avec Gemini Robotics ER 2 :

  1. Utilisez un langage simple et naturel. Décrivez ce que vous voulez que le robot fasse, comme vous le feriez avec une personne. Si un terme ne fonctionne pas, essayez un synonyme courant.

  2. Optimisez l'entrée visuelle. Recadrez ou zoomez sur les objets petits ou peu clairs avant d'envoyer l'image. La luminosité et un faible contraste des couleurs peuvent affecter la détection.

  3. Décomposez les tâches complexes en étapes. Envoyez chaque étape sous la forme d'une requête distincte pour améliorer la précision de chaque sous-tâche.

  4. Interrogez plusieurs fois et calculez la moyenne des résultats pour les tâches de haute précision. Cette approche consensuelle réduit la variance des résultats spatiaux.

Limites

Tenez compte des limites suivantes lorsque vous développez avec Gemini Robotics ER 2 :

  • Latence et performances : les requêtes complexes, les entrées haute résolution ou thinking_level.HIGH peuvent entraîner des temps de traitement plus longs. Utilisez thinking_level.MEDIUM pour un bon équilibre entre latence et performances.
  • Hallucinations : comme tous les grands modèles de langage, Gemini Robotics ER 2 peut parfois "halluciner" ou fournir des informations incorrectes, en particulier pour les requêtes ambiguës ou les entrées hors distribution.
  • Dépendance à la qualité de la requête : la qualité de la sortie du modèle dépend fortement de la clarté et de la spécificité de la requête d'entrée. Des prompts vagues ou mal structurés peuvent donner des résultats non optimaux.
  • Ressources de calcul : l'exécution du modèle, en particulier avec des entrées vidéo ou thinking_level.HIGH, consomme des ressources de calcul supplémentaires. Pour en savoir plus, consultez la page Réflexion.
  • Types d'entrées : consultez les rubriques suivantes pour en savoir plus sur les limites de chaque modalité :

Avis de confidentialité

Vous reconnaissez que les modèles référencés dans ce document (les "modèles robotiques") exploitent des données vidéo et audio pour faire fonctionner et déplacer votre matériel conformément à vos instructions. Vous pouvez donc utiliser les Modèles robotiques de manière à ce que des données de personnes identifiables, telles que des données vocales, des images et des données de ressemblance ("Données à caractère personnel"), soient collectées par les Modèles robotiques. Si vous choisissez d'utiliser les Modèles robotiques d'une manière qui collecte des Données à caractère personnel, vous acceptez de ne pas autoriser les personnes identifiables à interagir avec les Modèles robotiques ou à être présentes dans la zone qui les entoure, sauf si ces personnes identifiables ont été suffisamment informées de la collecte et de l'utilisation de leurs Données à caractère personnel et y ont consenti, comme indiqué dans les conditions d'utilisation de la Plate-forme d'agent applicables. Vous devez vous assurer que cet avis autorise la collecte et l'utilisation des Données à caractère personnel comme indiqué dans ces conditions, et vous devez déployer des efforts commercialement raisonnables pour minimiser la collecte et la distribution des Données à caractère personnel en utilisant des techniques telles que le floutage des visages et l'utilisation des Modèles robotiques dans des zones ne contenant pas de personnes identifiables, dans la mesure du possible.

Étapes suivantes

Pour en savoir plus sur Gemini Robotics ER 2, consultez les ressources suivantes :