Gemini 2.5 para robótica e inteligencia integrada

24 DE JUNIO DE 2025
Laura Graesser Staff Research Scientist
Fei Xia Staff Research Scientist

La última generación de modelos Gemini, 2.5 Pro y Flash, está abriendo nuevas fronteras en robótica. Su codificación, razonamiento y capacidades multimodales de avanzada, ahora combinados con la comprensión espacial, proporcionan la base para la próxima generación de robots interactivos e inteligentes.

Esta publicación explora cómo los desarrolladores pueden aprovechar Gemini 2.5 para crear aplicaciones de robótica sofisticadas. Proporcionaremos ejemplos prácticos con indicaciones para mostrar cómo usar Gemini 2.5 y la API Live para lo siguiente:

  • Comprensión semántica de la escena para consultas complejas: identificar y etiquetar objetos de los feeds de la cámara del robot. Comprender las consultas complejas a través del razonamiento multimodal.

  • Combina el razonamiento espacial con la generación de código para controlar los robots: utiliza la API del robot para llamar a las funciones y dar vida a los planes de tareas.

  • Crea aplicaciones de robótica interactiva con la API Live: convierte los comandos de voz en planes de robots ejecutables.

En marzo, lanzamos nuestros modelos Gemini Robotics, incluido Gemini Robotics-ER, nuestro modelo avanzado de razonamiento incorporado optimizado para las demandas únicas de las aplicaciones de robótica. También nos complace compartir cómo nuestros testers de confianza de Gemini Robotics ya están demostrando el poder de Gemini en aplicaciones de robótica. Incluimos ejemplos de Agile Robots, Agility Robotics, Boston Dynamics y Enchanted Tools. Únete a la lista de espera del programa de tester de confianza de Gemini Robotics-ER.


Comprensión semántica de escenas para consultas complejas

El razonamiento sobre el mundo físico es el núcleo del control general y sólido. Gemini 2.5 representa un paso en esta dirección con su capacidad mejorada para razonar multimodalmente. A continuación, compartimos dos ejemplos, utilizando las capacidades de apuntamiento y detección de objetos de Gemini.

Señalar permite que un modelo se refiera a entidades o partes de entidades con precisión y las ubique en el espacio. Gemini 2.5 Pro puede razonar sobre las entidades a las que apunta, abriendo nuevas oportunidades para interactuar con imágenes. Por ejemplo, Gemini 2.5 Pro puede razonar sobre el espacio vacío en el contexto de una exhibición de supermercado, sabiendo que esto indica que puede ser necesario reabastecerlo. En el siguiente ejemplo, Gemini identifica las necesidades de reposición de berenjenas bebé. Gemini 2.5 Pro también muestra una capacidad incipiente para localizar y leer información de esa ubicación, como se ilustra en el ejemplo de medición.

Ejemplo 1: Gemini 2.5 puede localizar objetos en la escena en función de descripciones de lenguaje detalladas, por ejemplo, encontrar un estante que necesite reabastecimiento.

Indicación: señala un contenedor en el estante que necesite reabastecimiento. La respuesta debe seguir el formato json: [{"point": <point>, "label": <label1>}, ...]. Los puntos están en formato [y, x] normalizados a 0-1000.

Imagen de entrada con superposición de respuesta:

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

Ejemplo 2: Gemini 2.5 puede localizar objetos pequeños en la escena y estimar los estados de esos objetos. Por ejemplo, puede leer medidores.

Indicación: señala todos los medidores redondos. La respuesta debe seguir el formato json: [{"point": <point>, "label": <label1>}, ...]. Los puntos están en formato [y, x] normalizados a 0-1000.

Imagen de entrada con superposición de respuesta:

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

Indicación: ¿cuál es la lectura en el medidor del medio?

Respuesta: según la vista en primer plano, el medidor redondo de la parte central izquierda de la imagen parece tener una lectura de 0. La aguja apunta directamente a la marca "0".


Más allá de la percepción centrada en el objeto

Gemini 2.5 puede rastrear con precisión varios objetos a lo largo del tiempo y detectar conceptos abiertos como "un derrame". Se puede solicitar a Gemini 2.5 que prediga la trayectoria en forma de una secuencia de puntos.

Ejemplo 1: Gemini 2.5 puede generar cuadros delimitadores para cada fotograma de un video y visualizarse como se muestra a continuación.

Indicación: detectar tazón verde, cangrejo, billetera, tazón rosa, teléfono, devuelve una matriz json con claves box_2d y etiqueta. (ejecutado por fotograma).

Imagen de entrada con superposición de respuesta:

Ejemplo 2: Gemini 2.5 puede detectar conceptos abiertos relevantes para la robótica, que requieren conocimiento de sentido común y razonamiento específico del contexto. Por ejemplo, un robot útil necesita comprender el concepto de "derrame".

Indicación:

1) Muéstrame el cuadro delimitador del derrame. Devuelve en una matriz json con claves box_2d y etiqueta.

2) Muestra las máscaras de segmentación del derrame. Muestra una lista JSON de máscaras de segmentación donde cada entrada contiene el cuadro delimitador 2D en la clave "box_2d", la máscara de segmentación en la clave "mask" y la etiqueta de texto en la clave "label".

Imagen de entrada con superposición de respuesta:

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

Ejemplo 3: se puede solicitar a Gemini 2.5 que prediga la trayectoria en forma de una secuencia de puntos.

Indicación: genera una trayectoria del brazo del robot de 10 puntos para mover el paño hacia el derrame. La respuesta debe seguir el formato json: [{"point": <point>, "label": <label1>}, ...]. Los puntos están en formato [y, x] normalizados a 0-1000.

Imagen de entrada con superposición de respuesta:

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

Uso de la comprensión espacial y la generación de código para controlar los robots

Gemini 2.5 puede utilizar su comprensión espacial subyacente para controlar robots a través de la generación de código. Al proporcionar a Gemini 2.5 una API de control de robot, puede aplicar capacidades avanzadas en la comprensión de escenas, la manipulación de objetos y la escritura de código en conjunto para realizar tareas nuevas, sin entrenamiento adicional.

En el ejemplo 1 a continuación, se muestra la generación de código para "Poner el plátano en el tazón". Le da a Gemini acceso a una API de control de robot y muestra cómo el modelo aprovecha sus capacidades de comprensión espacial, pensamiento y generación de código para seleccionar las llamadas y argumentos de API apropiados según la tarea. Gemini 2.5 genera 2 planes factibles diferentes para poner el plátano en el tazón. La primera solución es simplemente recoger el plátano, moverlo por encima del tazón y dejarlo caer. La segunda solución levanta el plátano, mueve el tazón debajo del plátano y luego deja caer el plátano.

Ejemplo 1: Gemini 2.5 genera un código de planificación de alto nivel para tareas de agarrar y colocar con diferentes estrategias.

Indicación:

Se te proporciona una API de control de robot y un código de ejemplo a continuación:

# API proporcionada
class RobotAPI:
  def detect_object(self, obj: str) -> Detection
    """Detecta la ubicación XYZ determinada del objeto"""
 
  def get_grasp_position_and_euler_orientation(self, gripper: str, object_name: str) -> tuple[numpy.ndarray, numpy.ndarray]:
    """Devuelve la posición y orientación de agarre para el objeto y la pinza dados del modelo Gemini Robotics ER u otras primitivas de agarre.
 
  def move_gripper_to(self, gripper: str, position: numpy.ndarray, orientation: numpy.ndarray):
    """Mueve la pinza a la posición y orientación dadas."""
 
  def move_gripper_to_safe_position(self, gripper: str):
    """Mueve la pinza dada a una posición segura fuera del área de la mesa."""
 
  def open_gripper(self, gripper: str):
    """Abre la pinza dada."""
 
  def close_gripper(self, gripper: str):
    """Cierra la pinza dada."""
 
robot=RobotAPI()
 
# Código de ejemplo
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 usa esto para determinar qué pinza usar.
 
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

Ahora genera el código para la tarea "poner el plátano en el tazón".

Respuesta 1 con resultados de código ejecutado:

Razonamiento (abreviado)

1: La posición actual de la pinza derecha es [-0.04, -0.028, 0.176].

2: La posición detectada del tazón es [-0.03839983, -0.02811164, 0.0073104].

3: Para colocar el plátano dentro del tazón, se debe bajar la coordenada Z de la pinza. Usaré las coordenadas X e Y detectadas del tazón para la posición objetivo. Para la coordenada Z, usaré la coordenada Z detectada del tazón (0.0073104) y agregaré un pequeño desplazamiento (por ejemplo, 0.03 m) para asegurarme de que el plátano se coloque dentro del tazón y no en la mesa. Esto daría como resultado un objetivo Z de aproximadamente 0.007 + 0.03 = 0.037 m. Esta coordenada Z es más alta que la base del tazón, pero más baja que la altura típica de un plátano cuando está de pie sobre la mesa, lo que garantiza que se coloque *en* el tazón.

Fragmento de código:

# Detecta la posición del tazón (vuelve a detectar para asegurar datos nuevos, aunque es poco probable que se haya movido)
bowl_detection = robot.detect_object('bowl')
if bowl_detection.position is None:
    raise ValueError("Bowl not detected.")
 
# Define la coordenada Z objetivo para dejar caer el plátano en el tazón
# Usa la posición Z del tazón y agrega un desplazamiento para colocar el plátano dentro.
# La Z original del plátano era ~0.032, la Z del tazón es ~0.007.
# Un Z objetivo de 0.037 (0.007 + 0.03) debería colocarlo dentro del tazón.
drop_z = bowl_detection.position[2] + 0.03
Python

Respuesta 2 con resultados de código ejecutado:

Razonamiento (abreviado)

# Replanificación debido a limitaciones de accesibilidad: el brazo DERECHO no puede alcanzar la posición actual del tazón.

# El plan ahora implicará que el brazo IZQUIERDO mueva el tazón al área accesible del brazo DERECHO.

# El brazo DERECHO puede alcanzar las coordenadas x de 0.04 m a 0.40 m. Moveré el tazón a una coordenada x de 0.10 m, que está al alcance del brazo DERECHO y también permite un poco de espacio desde el centro.

Fragmento de código:

target_bowl_position = [-0.07274145, -0.08317622, 0.00720479] # Posición original del tazón
# Mueve el tazón a una coordenada x alcanzable por el brazo DERECHO, manteniendo las mismas y y z (levantadas)
# Elijamos x = 0.10 m para el tazón, que está al alcance del brazo derecho (0.04 a 0.40)
# Mantenga la altura levantada a 0.20 m
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 también puede utilizar eficazmente un pequeño número de ejemplos en contexto para realizar tareas de control de robots más hábiles. En los dos ejemplos que se muestran a continuación de un robot ALOHA empacando cajas y doblando un vestido, se agregaron al contexto de Gemini diez demostraciones que consisten en razonamiento intercalado y acciones del robot para cada tarea. Creamos un código de código abierto que muestra cómo hacer esto usando Gemini, incluidos ejemplos de las demostraciones de entrada. Esto permite que los robots aprendan y se implementen en el acto. Ver el Colab.

Ejemplo 2: Gemini 2.5 (Flash) utiliza un pequeño número de ejemplos en contexto para realizar tareas de control de robots más hábiles.

Indicación: consulta colab.

Respuesta con resultados de código ejecutado:

Creación de aplicaciones de robótica interactiva con la API Live

La API Live para transmisión en tiempo real se introdujo recientemente y se puede usar para crear aplicaciones interactivas que permiten a las personas controlar robots usando su voz. La interacción intuitiva entre humanos y robots es un aspecto importante para hacer que el uso de los robots sea fácil y seguro de usar. Recientemente presentamos una demostración interactiva de Gemini Robotics en I/O 2025, que se creó en torno a la API Live para la interacción de voz y las llamadas a funciones.

La API Live admite audio y video como modalidades de entrada, y audio o texto como modalidades de salida. Esto te permite enviar tanto la entrada de voz como la alimentación de la cámara del robot a la API Live. Esto es aún más poderoso cuando se combina con el uso de herramientas.

El uso de herramientas permite que la API Live vaya más allá de la simple conversación al permitirte realizar acciones en el mundo real mientras mantienes una conexión en tiempo real. Por ejemplo, las API de robot definidas anteriormente se pueden definir como llamadas a funciones, incluidas robot.open_gripper (), robot.close_gripper () y robot.move_gripper_to(). Después de que se definen como llamadas a herramientas, se pueden integrar en el flujo de trabajo donde las personas pueden interactuar con el robot utilizando la voz en tiempo real. Los desarrolladores pueden comenzar a usar GitHub y consultar la documentación de la API para conocer las funciones de llamada a funciones.

🔊 Demostración de una consola web en tiempo real para robótica construida con API Live. Haz clic con el botón derecho para abrir en una nueva pestaña para audio.

Seguridad

Los modelos 2.5 Pro y 2.5 Flash demuestran un rendimiento sólido en los puntos de referencia de lesiones físicas y multimodales de ASIMOV publicados junto con el informe técnico de Gemini Robotics, con una precisión comparable a la de los modelos 2.0. Más allá de los puntos de referencia de ASIMOV, los modelos 2.5 Pro y 2.5 Flash también muestran un excelente rendimiento en el rechazo de indicaciones que intentan aprovechar las capacidades de razonamiento incorporadas al tiempo que infringen las políticas de seguridad, como la promoción de estereotipos dañinos, la discriminación o la puesta en peligro de menores. Después de una evaluación rigurosa frente a tales indicaciones contradictorias generadas sintéticamente, 2.5 Pro y Flash demostraron tasas de infracción cercanas a cero.


Cómo se usa Gemini hoy en día para la robótica

En marzo lanzamos el modelo Gemini Robotics-ER y ya nos inspira el hecho de ver cómo la comunidad lo está utilizando para aplicaciones de robótica. Echa un vistazo a estos ejemplos de interactividad, percepción, planificación y llamadas funcionales de nuestros testers de confianza: Agile Robots, Agility Robotics, Boston Dynamics y Enchanted Tools.

¡Ya queremos ver lo que creas!


Referencias

El razonamiento incorporado en Gemini 2.5 Flash y Pro está disponible en Google AI Studio, la API de Gemini y Vertex AI. Para comenzar a compilar con estos modelos en la API de Gemini, visita nuestra guía para desarrolladores. Si te interesa compilar con Gemini Robotics-ER, regístrate en el programa de tester de confianza.


Agradecimientos

Agradecemos a los investigadores del equipo de Embodied Reasoning: 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, Tedo, Thomas Lampe, Tianli Ding, Wenhao Yu y Wentao Yuan; al equipo de Gemini: Xi Chen, Weicheng Kuo y Paul Voigtlaender; al equipo de Robotics Safety: Vikas Sindhwani y Abhishek Jindal; al apoyo del producto y al programa: Kendra Byrne y Sally Jesmonth; y a los miembros del equipo de desarrollo de relaciones: Paul Ruiz y Paige Bailey, por ayudar con este artículo.