TARS - Asistente Robótico Inteligente
Por Ale B. E.
Resumen del proyecto
Este proyecto busca crear una réplica funcional de TARS, el robot asistente de la película Interstellar. El sistema está impulsado por inteligencia artificial, lo que le permite mantener conversaciones naturales y emular respuestas emocionales. El diseño se basa en el proyecto de Hackster.io, con mejoras importantes en movilidad, interacción y capacidades de IA.
Versiones del proyecto
TARS V1
La versión inicial fue mi primer intento de réplica autopropulsada en miniatura. Aunque muchas de las ideas implementadas no estaban probadas, sirvió como base fundamental para el desarrollo posterior.
Componentes principales
- Computadora: Raspberry Pi 3B+ con Raspbian
- Servomotores: Cuatro servos de engranaje metálico de alto torque
- Controlador: Adafruit PCA-9685 para el manejo de los servos
- Alimentación: Dos packs de baterías NiMH de 8 celdas (7.2 V) en paralelo
- Pantalla: Monitor HDMI de 5“
- Control: Control Bluetooth 8BitDo Zero 2
Estructura
El chasis de la V1 se construyó con un armazón tipo columna vertebral, usando perfiles de extrusión de aluminio como “espinas” a modo de base estructural. Sobre esta base se montaron piezas de policarbonato impresas en 3D para definir la forma general del robot y su sistema de tracción.
Limitaciones identificadas
- Pasos pesados y bruscos debido al peso de las baterías NiMH
- Mala distribución del peso (componentes pesados concentrados en el torso)
- Programa de caminata poco desarrollado
- Componentes impresos en 3D propensos a romperse ante impactos
Sistema de control
Arquitectura del software
El sistema de control está organizado en tres capas principales:
- Servo Controller: Gestiona los movimientos básicos de los servos
- Servo Abstractor: Combina movimientos básicos para crear funciones complejas
- TARS Runner: Maneja la comunicación con el control remoto y la ejecución de comandos
Servo Abstractor
Este programa toma los movimientos básicos de los servos y los combina para automatizar funciones de movimiento complejas:
import time
import TARS_Servo_Controller3
def stepForward():
TARS_Servo_Controller3.height_neutral_to_up()
TARS_Servo_Controller3.torso_neutral_to_forwards()
TARS_Servo_Controller3.torso_bump()
TARS_Servo_Controller3.torso_return()
def turnRight():
TARS_Servo_Controller3.neutral_to_down()
TARS_Servo_Controller3.turn_right()
TARS_Servo_Controller3.down_to_neutral()
TARS_Servo_Controller3.neutral_from_right()
def turnLeft():
TARS_Servo_Controller3.neutral_to_down()
TARS_Servo_Controller3.turn_left()
TARS_Servo_Controller3.down_to_neutral()
TARS_Servo_Controller3.neutral_from_left()
def pose():
TARS_Servo_Controller3.neutral_to_down()
TARS_Servo_Controller3.torso_neutral_to_backwards()
TARS_Servo_Controller3.down_to_up()
def unpose():
TARS_Servo_Controller3.torso_return2()
Mejoras planeadas para TARS V2
Hardware
- Reemplazar las baterías NiMH por packs LiPo más ligeros
- Mejorar el diseño estructural para una mejor distribución del peso
- Servos de mayor precisión y menor consumo
- Pantalla OLED de mayor resolución con menor consumo de energía
Software
- Integrar un modelo de IA conversacional basado en transformers
- Sistema de reconocimiento de voz para comandos hablados
- Expresiones faciales en pantalla para comunicación emocional
- Algoritmos de caminata mejorados para un movimiento más fluido
Interacción
- Capacidad de responder preguntas complejas
- Parámetros de personalidad ajustables (humor, sarcasmo, etc.)
- Reconocimiento facial para identificar usuarios
- Integración con sistemas de domótica
Desafíos técnicos
Movilidad
El principal desafío ha sido el mecanismo de elevación. En la versión inicial, las piernas tocaban el suelo y se atascaban, impidiendo la caminata. La solución fue agrandar los canales rectangulares en los orificios cuadrados por donde gira el eje principal, permitiendo que tanto el eje como las piernas se muevan verticalmente respecto al módulo del torso.
Balance y estabilidad
La distribución del peso y el centro de gravedad son críticos para un funcionamiento correcto. Se requiere una ubicación cuidadosa de los componentes para evitar caídas durante el movimiento.
Consumo de energía
La duración de la batería es limitada debido al alto consumo de los servos. Optimizar el consumo energético es una prioridad para las próximas versiones.
Próximos pasos
Rediseño estructural
- Optimizar la distribución del peso
- Reducir el peso total del sistema
- Mejorar la durabilidad de los componentes críticos
Mejoras de movilidad
- Desarrollar algoritmos de caminata más eficientes
- Implementar detección de obstáculos
- Añadir capacidad de navegar distintos tipos de terreno
Integración avanzada de IA
- Implementar un modelo conversacional usando un LLM
- Desarrollar un sistema de reconocimiento de voz
- Crear una interfaz visual para expresiones faciales
Optimización energética
- Migrar a baterías LiPo
- Implementar modos de ahorro de energía
- Optimizar el consumo de los componentes electrónicos
“No necesito un robot que me diga lo importantes que son los humanos.” – Cooper, Interstellar