RobotCleanPupusas / backend /config_builder.py
Trujasx's picture
backend done
5ed0597
import gradio as gr
from lerobot.robots import LeFeetech
import time
# Inicializa conexión con robot Feetech
try:
robot = LeFeetech(port="/dev/ttyUSB0") # Cambia este puerto si es necesario
motors = robot.motors
except Exception as e:
raise RuntimeError(f"Error al conectar con el robot: {e}")
# Función para mover los motores desde los sliders
def controlar_robot(motor1_pos, motor2_pos, motor3_pos):
try:
# Envía posición a cada motor (ajusta según IDs reales)
motors[0].goto(motor1_pos)
motors[1].goto(motor2_pos)
motors[2].goto(motor3_pos)
time.sleep(0.5) # espera para que el robot se mueva
# Podrías agregar aquí sensores o cámara para devolver imagen
return f"Motor1: {motor1_pos}, Motor2: {motor2_pos}, Motor3: {motor3_pos}"
except Exception as err:
return f"Error: {err}"
# Interfaz
with gr.Blocks() as demo:
gr.Markdown("# Control en Tiempo Real del Robot LeRobot con Feetech")
with gr.Row():
motor1 = gr.Slider(0, 1023, value=512, label="Motor 1")
motor2 = gr.Slider(0, 1023, value=512, label="Motor 2")
motor3 = gr.Slider(0, 1023, value=512, label="Motor 3")
estado = gr.Textbox(label="Estado del Robot")
# Actualiza cada vez que se mueva algún slider
motor1.change(fn=controlar_robot, inputs=[motor1, motor2, motor3], outputs=estado)
motor2.change(fn=controlar_robot, inputs=[motor1, motor2, motor3], outputs=estado)
motor3.change(fn=controlar_robot, inputs=[motor1, motor2, motor3], outputs=estado)
demo.launch()