¿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 documentación clara y una API funcional que permite aprovechar las capacidades de este robot de forma gradual.
Programar el Unitree Go2 AIR requiere algunos conocimientos básicos de programación, pero está diseñado para ser accesible incluso para quienes comienzan en robótica. El SDK (Software Development Kit) para el Go2 proporciona una API de alto nivel para interactuar con los robots usando middleware CycloneDDS o WebRTC, asegurando amplia compatibilidad e integración sencilla.
Interfaces de programación
Unitree SDK
El SDK oficial de Unitree es la forma más directa de programar el Go2 AIR. La interfaz Python SDK2 mantiene consistencia con la interfaz unitree_sdk2, logrando la adquisición de estado del robot y control a través de solicitud-respuesta o suscripción/publicación de temas.
Los pasos básicos para comenzar con el SDK incluyen:
Configurar la conexión de red del robot siguiendo las instrucciones oficiales
Instalar las dependencias necesarias para Python
Clonar el repositorio oficial desde GitHub
Configurar la interfaz de red correcta para la comunicación
El SDK proporciona ejemplos en el directorio /example
que demuestran operaciones básicas como leer los sensores, controlar los movimientos y acceder a la cámara frontal. Estos ejemplos son excelentes puntos de partida para familiarizarse con la estructura de control del robot.
ROS (Robot Operating System)
ROS es una plataforma de desarrollo robótico ampliamente utilizada que ofrece una forma estructurada de programar robots con un enfoque modular. Unitree SDK2 implementa un mecanismo de comunicación robótica fácil de usar basado en Cyclonedds, lo que permite a los desarrolladores lograr comunicación y control del robot (compatible con Unitree Go2, B2 y H1).
Para configurar ROS2 con el Go2 AIR:
Instalar ROS2 (versión Foxy, Humble u otra compatible)
Clonar el repositorio unitree_ros2
Compilar los paquetes con colcon build
Configurar la conexión Ethernet entre el robot y la computadora
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 es generalmente la opción más accesible para 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 control de nivel alto, es importante primero usar la aplicación para desactivar el servicio de movimiento de alto nivel (sport_mode) para evitar instrucciones conflictivas.
Los movimientos básicos que se pueden programar incluyen:
Caminar hacia adelante, 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 del 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 puntuación de confianza.
Para implementar seguimiento de objetos se requiere:
Acceder al flujo de la cámara frontal
Procesar las imágenes para detectar objetos de interés
Calcular la posición relativa del objeto
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
Ajustar la postura en función de la inclinación del terreno
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 permite implementar rutinas de patrullaje autónomo. Con el LIDAR L1 y una aplicación dedicada, se puede construir un mapa de nube 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:
Generar un mapa del entorno utilizando el LIDAR
Definir puntos de interés o una ruta completa
Implementar algoritmos de planificación de rutas
Configurar comportamientos específicos en cada punto (como mirar alrededor)
Establecer respuestas ante eventos inesperados (obstáculos nuevos)
Unitree permite simular entornos y probar el código antes de implementarlo físicamente, lo que reduce riesgos y acelera 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 fomentamos el uso del Go2 AIR como plataforma educativa para formar la próxima generación de ingenieros robóticos. Su combinación de hardware robusto con interfaces de programación accesibles lo convierte en un excelente recurso para instituciones educativas y entusiastas que desean adentrarse en el fascinante mundo de la robótica cuadrúpeda.
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.