סקירה כללית על Gemini Robotics ER 2

‫Gemini Robotics ER הוא מודל ראייה-שפה (VLM) שמאפשר לרובוטים להבין את העולם הפיזי בצורה מתקדמת. המודל מפרש נתונים חזותיים, מבצע חשיבה מרחבית וזמנית, מתכנן משימות מרובות שלבים ומתזמר רובוטים וכלים.

מודלים

‫Gemini Robotics ER 2 הוא עדכון למודל החשיבה הרציונלית שלנו, שמאפשר חשיבה רציונלית מדויקת לגבי הסביבה הפיזית של הרובוט. הוא מתמחה ביכולות של חשיבה מגולמת, כמו תזמור של סוכני רובוטים (לדוגמה, באמצעות מודלים של ראייה-שפה-פעולה (VLA)), הבנת סרטונים של רובוטים (כולל הבנת ההתקדמות וזיהוי הצלחה), קריאת מכשירים, הצבעה וחשיבה מרחבית.

המודל הבא זמין בגרסת טרום-השקה (Preview):

  • ‫gemini-robotics-er-2-preview: מבוסס על Gemini 3.5 Flash, עם יכולות משופרות של חשיבה מרחבית, איתור רגעים בסרטונים, סיווג התקדמות בסרטונים, תזמור של כמה רובוטים ושימוש בכלים בכמה שלבים. בדף המידע על המודל Gemini Robotics ER 2 מפורטים המפרט הטכני, מגבלות האסימונים והמכסות, היכולות הנתמכות, הזמינות לפי אזור והתמחור.

במדריך הזה נשתמש ב-Google Gen AI SDK עם Gemini Enterprise Agent Platform. בכל דוגמה, הלקוח מאותחל באמצעות enterprise=True ומאומת באמצעות פרטי הכניסה של Google Cloud, כדי שתוכלו לקרוא למודל באמצעות פרויקט Google Cloud משלכם.

יכולות רובוטיקה

בטבלה הבאה מפורטות היכולות העיקריות של Gemini Robotics ER 2:

יכולת תיאור מדריך
חשיבה מרחבית להצביע על אובייקטים, לעקוב אחריהם בסרטון, לזהות אותם באמצעות תיבות תוחמות (bounding box) ולתכנן מסלולים. חשיבה מרחבית
הרצת קוד באמצעות סוכן אפשר להשתמש בהרצת קוד כדי להגדיל או לחתוך תמונות, לקרוא מכשירים ולהוסיף הערות לסצנות. יכולות אג'נטיות
תזמור משימות לשלב חשיבה מרחבית עם ממשקי API מותאמים אישית לרובוטים כדי להשלים משימות ארוכות טווח. תזמור משימות
הבנת סרטונים איתור רגעים וסיווג התקדמות מפידים של סרטונים רציפים. הבנת סרטונים

לפני שמתחילים

פלטפורמת הסוכנים מבצעת אימות באמצעות פרטי הכניסה של Google Cloud, ולא באמצעות מפתח Gemini API. לפני שמריצים את הדוגמאות, צריך לבצע את ההגדרות הבאות:

  1. מתקינים את Google Gen AI SDK.

    pip install --upgrade google-genai
    
  2. מפעילים את ה-API בפרויקט ב- Google Cloud ומוודאים שיש לכם מזהה פרויקט. אפשר להשתמש בפרויקט קיים או ליצור פרויקט חדש.

  3. אימות באמצעות Application Default Credentials ‏ (ADC). לפיתוח מקומי, מריצים את הפקודה:

    gcloud auth application-default login
    
  4. מפעילים את הלקוח באמצעות הקצה העורפי של Agent Platform. כל הדוגמאות של Python בדף הזה משתמשות בלקוח הבא, לכן צריך להגדיר מזהה פרויקט משלכם:

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

    לחלופין, אפשר להגדיר את משתנה הסביבה GOOGLE_GENAI_USE_ENTERPRISE=True במקום להעביר את enterprise=True ללקוח.

קדימה, מתחילים

בדוגמה הבאה, המערכת מוצאת אובייקטים בתמונה ומחזירה את הקואורדינטות הדו-ממדיות המנורמלות ואת התוויות שלהם. אתם יכולים להעביר את הפלט הזה ישירות ל-API של רובוטיקה או למודל ראייה-שפה-פעולה (VLA) כדי ליצור פעולות של רובוט.

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

הפלט יהיה מערך JSON שמכיל אובייקטים, כל אחד עם point (קואורדינטות [y, x] מנורמלות) ו-label שמזהה את האובייקט.

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

בתמונה הבאה מוצגת דוגמה לאופן שבו הנקודות האלה יכולות להופיע:

דוגמה שמציגה את הנקודות של אובייקטים בתמונה

איך זה עובד

‫Gemini Robotics ER 2 מקבל קלט של תמונות, סרטונים או אודיו באמצעות הנחיות בשפה טבעית. הוא מזהה אובייקטים, מסיק מסקנות לגבי ההקשר של הסצנה והיחסים המרחביים, ומחזיר פלט מובנה כמו קואורדינטות או תיבות תוחמות (bounding box).

הוא גם פועל כסוכן: הוא מפרק משימות מורכבות למשימות משנה ומבצע אותן על ידי קריאה לפונקציות של הרובוט או הפעלת קוד שנוצר. לדוגמה, "שים את התפוח בקערה" הופך לרצף של שלבי איתור, אחיזה והנחה.

בדף קריאה להפעלת פונקציות מוסבר איך פועלת קריאה להפעלת פונקציות ב-Gemini.

בטיחות

‫Gemini Robotics ER 2 פותח תוך התחשבות בבטיחות, אבל אתם אחראים לשמור על סביבה בטוחה סביב הרובוט. מודלים של AI גנרטיבי עלולים לטעות, ורובוטים פיזיים עלולים לגרום נזק. הבטיחות היא בעדיפות עליונה, והפיכת מודלים של AI גנרטיבי לבטוחים לשימוש עם רובוטיקה בעולם האמיתי היא תחום מחקר פעיל וקריטי שלנו. מידע נוסף זמין בדף הבטיחות של Google DeepMind בנושא רובוטיקה.

שיטות מומלצות

כדי לקבל את התוצאות הכי טובות מ-Gemini Robotics ER 2, כדאי לפעול לפי השיטות המומלצות הבאות:

  1. השתמשו בשפה פשוטה וטבעית. תארו מה אתם רוצים שהרובוט יעשה, כמו שהייתם מסבירים לאדם. אם מונח מסוים לא עובד, נסו מילה נרדפת נפוצה.

  2. אופטימיזציה של הקלט החזותי. לפני ששולחים את התמונה, חותכים אותה או מתקרבים לאובייקטים קטנים או לא ברורים. תאורה וניגודיות צבעים נמוכה יכולות להשפיע על הזיהוי.

  3. לפצל משימות מורכבות לשלבים. כדי לשפר את הדיוק בכל משימת משנה, שלחו כל שלב כהנחיה נפרדת.

  4. למשימות שדורשות דיוק גבוה, כדאי לשלוח שאילתות כמה פעמים ולחשב את ממוצע התוצאות. הגישה הזו, שמבוססת על קונצנזוס, מצמצמת את השונות בפלטים המרחביים.

מגבלות

כשמפתחים עם Gemini Robotics ER 2, חשוב להביא בחשבון את המגבלות הבאות:

  • זמן אחזור לעומת ביצועים: שאילתות מורכבות, קלט ברזולוציה גבוהה או thinking_level.HIGH יכולים להאריך את זמני העיבוד. כדאי להשתמש ב-thinking_level.MEDIUM כדי להשיג איזון טוב בין זמן האחזור לביצועים.
  • הזיות: כמו כל המודלים הגדולים של שפה (LLM), לפעמים Gemini Robotics ER 2 עלול "להזות" או לספק מידע שגוי, במיוחד אם ההנחיות לא ברורות או שהקלט לא תואם להתפלגות.
  • תלות באיכות ההנחיה: איכות הפלט של המודל תלויה מאוד בבהירות ובספציפיות של הנחיית הקלט. הנחיות מעורפלות או לא מובנות עלולות להוביל לתוצאות לא אופטימליות.
  • משאבי מחשוב: הפעלת המודל, במיוחד עם קלט של וידאו או thinking_level.HIGH, צורכת משאבי מחשוב נוספים. לפרטים נוספים, עיינו בדף Thinking.
  • סוגי קלט: בנושאים הבאים מפורטות המגבלות של כל מודל:

הודעת פרטיות

אתם מאשרים שהמודלים שמוזכרים במסמך הזה ("המודלים הרובוטיים") משתמשים בנתוני וידאו ואודיו כדי להפעיל ולהזיז את החומרה שלכם בהתאם להוראות שלכם. לכן, יכול להיות שתפעילו את המודלים לרובוטיקה כך שהם יאספו נתונים מאנשים שניתן לזהות, כמו נתוני קול, תמונות ודמיון ("מידע אישי"). אם בחרת להפעיל את המודלים לרובוטיקה באופן שבו נאסף מידע אישי, הסכמת שלא לאפשר לאנשים שניתן לזהות אותם ליצור אינטראקציה עם המודלים לרובוטיקה או להיות נוכחים באזור שסביבם, אלא אם האנשים האלה קיבלו הודעה מספקת על איסוף המידע האישי שלהם והשימוש בו, והסכימו לכך, כפי שמפורט בתנאים ובהגבלות הרלוונטיים של פלטפורמת הסוכן. עליך לוודא שההודעה הזו מאפשרת לאסוף מידע אישי ולהשתמש בו כפי שמפורט בתנאים האלה, ולהשקיע מאמצים סבירים מבחינה מסחרית כדי לצמצם את האיסוף וההפצה של מידע אישי באמצעות שיטות כמו טשטוש פנים והפעלת המודלים הרובוטיים באזורים שאין בהם אנשים שניתן לזהות, ככל שניתן.

המאמרים הבאים

מידע נוסף על Gemini Robotics ER 2 זמין במקורות המידע הבאים: