¿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:
Configurar la conexión de red del robot siguiendo las instrucciones oficiales
Instalación de 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 /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:
Instalar ROS2 (Foxy, Humble u otra versión 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 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:
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
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:
Generar un mapa del entorno utilizando el LIDAR
Definir puntos de interés o una ruta completa
Implementación de 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, 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.