¿Cómo programar el Unitree Go2 AIR paso a paso?

El Go2 AIR es ideal para introducirse en la programación de cuadrúpedos. Unitree ofrece una documentación clara y un PLC funcional que permite desarrollar gradualmente las capacidades de este robot.

La programación del Unitree Go2 AIR requiere algunos conocimientos básicos de programación, pero se ha diseñado para que sea accesible incluso a quienes se inician en la robótica. El SDK (kit de desarrollo de software) para el Go2 proporciona una API de alto nivel para interactuar con robots mediante el middleware CycloneDDS o WebRTC, lo que garantiza una amplia compatibilidad y una fácil integración.

Interfaces de programación

SDK de Unitree

El SDK oficial de Unitree es la forma más directa de programar el Go2 AIR. La interfaz Python SDK2 mantiene la coherencia con la interfaz unitree_sdk2, lo que permite adquirir el estado y el control del robot mediante solicitud-respuesta o solicitud/publicación de tareas.

Los pasos básicos para empezar a utilizar el SDK incluyen:

  1. Configurar la conexión de red del robot siguiendo las instrucciones oficiales

  2. Instalación de las dependencias necesarias para Python

  3. Clonar el repositorio oficial desde GitHub

  4. Configurar la interfaz de red correcta para la comunicación

El SDK proporciona ejemplos en el directorio /ejemplo que muestran operaciones básicas como la lectura de los sensores, el control de los movimientos y el acceso a la pantalla frontal. Estos ejemplos son excelentes puntos de partida para familiarizarse con la estructura de control del robot.

ROS (Sistema operativo para robots)

ROS es una plataforma de desarrollo robótico ampliamente utilizada que ofrece una forma estructurada de programar robots utilizando un enfoque modular. Unitree SDK2 implementa un mecanismo de comunicación entre robots fácil de usar basado en Cyclonedds, que permite a los desarrolladores comunicarse y controlar el robot (compatible con Unitree Go2, B2 y H1).

Para configurar ROS2 con Go2 AIR:

  1. Instalar ROS2 (Foxy, Humble u otra versión compatible)

  2. Clonar el repositorio unitree_ros2

  3. Compilar los paquetes con colcon build

  4. Configurar la conexión Ethernet entre el robot y la computadora

  5. Ajustar las configuraciones de red para que coincidan con el robot

ROS2 ofrece ventajas significativas para proyectos más complejos, ya que permite dividir la funcionalidad en nodos independientes y aprovechar las herramientas de visualización y simulación del ecosistema ROS.

Python / C++

Tanto Python como C++ son lenguajes compatibles para programar el Go2 AIR. El SDK no oficial incluye soporte para múltiples clientes: sport_client, basic_client, vui_client, robotstate_client y lidar_client para cubrir una amplia gama de funcionalidades.

Python suele ser la opción más accesible para los principiantes:

# Ejemplo conceptual (no es código funcional completo)
from unitree_go2_sdk import SportClient

# Inicializar conexión con el robot
client = SportClient("interfaz_de_red")

# Enviar comando de movimiento
client.move_forward(speed=0.5, duration=3.0)

C++ ofrece mejor rendimiento para aplicaciones que requieren control en tiempo real o procesamiento intensivo:

// Ejemplo conceptual (no es código funcional completo)
#include "unitree_go2_sdk.hpp"

int main() {
    // Inicializar conexión con el robot
    SportClient client("interfaz_de_red");
    
    // Enviar comando de movimiento
    client.moveForward(0.5, 3.0);
    
    return 0;
}

¿Qué se puede programar?

Secuencias de movimiento

El Go2 AIR permite programar diversos patrones de movimiento, desde caminar en diferentes direcciones hasta acciones más complejas. Para el control de alto nivel, es importante utilizar primero la aplicación para desactivar el servicio de movimiento de alto nivel (sport_mode) para evitar instrucciones contradictorias.

Los movimientos básicos que se pueden programar incluyen:

  • Caminar hacia delante, hacia atrás y lateralmente

  • Rotar sobre su eje

  • Cambiar la altura del cuerpo

  • Ajustar la velocidad de desplazamiento

Para movimientos más avanzados, se pueden concatenar acciones básicas o utilizar las funciones predefinidas del SDK que permiten comportamientos complejos.

Seguimiento de objetos

El sistema de visión Go2 AIR puede programarse para detectar y seguir objetos específicos. Con la integración de detectores como COCO, es posible identificar objetos en la imagen de la cámara frontal, obteniendo información como la clase del objeto y su nivel de confianza.

Para implementar el seguimiento de objetos se requiere:

  1. Acceder al flujo de la cámara frontal

  2. Procesar las imágenes para detectar objetos de interés

  3. Calcular la posición relativa del objeto

  4. Ajustar el movimiento del robot para mantener el objeto en el campo visual

Estas funcionalidades son particularmente útiles para aplicaciones de vigilancia o interacción con el entorno.

Respuestas ante sensores

El Go2 AIR incorpora múltiples sensores que pueden utilizarse para desarrollar comportamientos reactivos. El Sistema de Seguimiento Lateral Inteligente (ISS2.0) mejora la precisión del posicionamiento en un 50% y extiende el rango de control remoto a más de 30 metros, facilitando la navegación en terrenos complejos.

Algunos ejemplos de comportamientos basados en sensores incluyen:

  • Detener el movimiento al detectar obstáculos con el LIDAR

  • Adaptar la postura a la inclinación del suelo

  • Responder a comandos de voz mediante el sistema de audio

  • Mantener el equilibrio en superficies inestables

Estos comportamientos se programan suscribiéndose a los temas (topics) correspondientes y definiendo las acciones apropiadas según los datos recibidos.

Comportamientos de patrullaje

El sistema LIDAR del Go2 AIR le permite implementar rutinas de desplazamiento autónomo. Con el LIDAR L1 y una aplicación dedicada, puede construir un mapa de puntos dentro de un área determinada y especificar una ruta para que el Go2 se mueva de forma autónoma.

Para programar comportamientos de patrullaje:

  1. Generar un mapa del entorno utilizando el LIDAR

  2. Definir puntos de interés o una ruta completa

  3. Implementación de algoritmos de planificación de rutas

  4. Configurar comportamientos específicos en cada punto (como mirar alrededor)

  5. Establecer respuestas ante eventos inesperados (obstáculos nuevos)

Unitree permite simular entornos y probar el código antes de implementarlo físicamente, reduciendo así los riesgos y acelerando el desarrollo. La plataforma soporta el uso de Mujoco como simulador y tiene implementaciones de simulación a realidad (sim-to-real), integrándose con generadores de terreno, lo que facilita probar comportamientos en diferentes condiciones antes de ejecutarlos en el robot real.

Desde PHR Robotics hemos estado promoviendo el uso del Go2 AIR como plataforma educativa para la formación de la próxima generación de ingenieros robóticos. Su combinación de hardware robusto e interfaces de programación accesibles lo convierten en un recurso excelente para instituciones educativas y estudiantes que quieran explorar el fascinante mundo de la programación robótica.

La integración entre hardware avanzado y software flexible permite a estudiantes y desarrolladores experimentar con conceptos complejos de manera tangible, creando un puente ideal entre la teoría robótica y las aplicaciones prácticas en el mundo real.

Lea nuestro artículo sobre el robot robótico Unitree Go2 AIR para saber más sobre esta tecnología.

Anterior
Anterior

¿Para quién está pensado el perro robótico Unitree Go2 AIR?

Siguiente
Siguiente

¿Qué diferencias hay entre el Unitree Go2 AIR, Pro y EDU?