Contenido detallado
⚠️ Antes de encender el brazo
Un brazo con servos puede apretarte un dedo, tirar un vaso y golpear a quien esté cerca. Trabaja con la mesa despejada en un radio mayor que el alcance del brazo, con un interruptor para la fuente de los servos al alcance de la mano y sin niños ni animales en el área. El tema 6 detalla la rutina.
🤝 El brazo SO-101 y el proyecto LeRobot
O LeRobot es una biblioteca abierta de Hugging Face, en Python y PyTorch, que reúne todo lo que necesitas para enseñar a un robot mediante demostraciones: controlar motores, leer cámaras, grabar episodios, entrenar políticas y ejecutarlas en el brazo real. El SO-101 es el brazo de referencia del proyecto: seis servos en cada brazo, piezas que imprimes o compras listas y un costo de afición. Con el par líder/seguidor, muestras la tarea moviendo el líder y el seguidor la repite.
🌱 ¿Eres nuevo aquí?
Cada articulación que gira es un grado de libertad: el SO-101 tiene cinco articulaciones más la pinza. El servo serial de bus (el STS3215) es un motor con reducción, sensor de posición y un pequeño controlador integrado; varios comparten los mismos cables y cada uno responde solo a su número (ID). Teleoperación es controlar el robot a distancia, en este caso mediante el brazo líder. Una política es el programa entrenado que decide el movimiento a partir de las cámaras (módulo 5.4).
Cómo leer: Los círculos son las articulaciones (cinco más la pinza en la punta). El brazo cian es el líder: lo sostienes y solo mide posiciones. El teal, con brillo, es el seguidor: tiene fuerza y repite la pose. La computadora en medio lee uno y envía las órdenes al otro, decenas de veces por segundo.
Archivos de impresión abiertos en el repositorio del SO-101; también hay kits con las piezas listas. El PLA común sirve.
STS3215 en ambos brazos. En el líder, algunas articulaciones usan reducciones diferentes para que sea fácil moverlo: sigue la lista de piezas.
Una por brazo: convierte la conexión USB de la computadora al bus serial de los servos y recibe la fuente de alimentación.
Hay versiones del STS3215 para diferentes voltajes. Comprueba el voltaje de tus servos antes de conectar la fuente del kit.
Por qué aprender
La combinación del SO-101 con LeRobot es hoy el camino más corto y económico entre «tengo un brazo» y «el brazo aprendió una tarea». Todo lo que hagas aquí (puertos, IDs, calibración) es la base de los módulos 5.4, 5.5 y 5.6.
Conceptos clave
🔧 Montar, configurar los IDs y calibrar los servos
Todos los STS3215 salen de fábrica con el mismo ID. Como los seis servos de un brazo comparten los mismos cables, cada uno necesita un ID diferente antes del montaje final: del 1, en la base, al 6, en la pinza. Después de montarlo, la calibración le enseña al software dónde están el centro y los extremos de cada articulación, para que el líder y el seguidor hablen el mismo «idioma» de posición.
Cómo leer: la línea teal es el bus: un cable de datos más alimentación que pasa por todos los servos en cadena. El número en cada cuadro es el ID; debajo aparece la articulación correspondiente. Si dos servos tienen el mismo ID, ambos responden al mismo tiempo y el brazo se vuelve loco: por eso la configuración se hace de uno en uno.
🌱 ¿Eres nuevo aquí?
Los comandos de abajo usan LeRobot, que instalas en el tema 3. Si todavía no lo instalaste, lee este tema para entender el orden, completa el tema 3 y vuelve. La puerto es el nombre que el sistema le da al cable USB de cada brazo: /dev/ttyACM0 en Linux, /dev/tty.usbmodem... en macOS, COM5 en Windows.
Paso a paso
Encuentra el puerto de cada brazo
lerobot-find-port te pide desconectar el cable y muestra qué puerto desapareció. Repite el proceso con el otro brazo y anota ambos puertos.
Asigna los IDs, un servo a la vez
lerobot-setup-motors te pide conectar solo un servo al cable, asignarle el ID y pasar al siguiente, empezando por la pinza. Marca cada servo con un marcador.
Monta los brazos
Sigue la guía oficial de montaje del SO-101, articulación por articulación, con los IDs en la posición correcta. No aprietes demasiado los tornillos en el plástico impreso.
Calibra el seguidor y el líder
lerobot-calibrate te pide poner el brazo en el centro de su recorrido y luego mover cada articulación de un extremo al otro. Sigue las instrucciones en pantalla; el resultado se guarda con el id que le asignes al brazo.
Objetivo: los comandos de los pasos 1, 2 y 4, con la sintaxis que funcionó en la guía INEMA robotica-real2sim con LeRobot 0.6.1 (oct/2026). Las opciones cambian entre versiones: comprueba con --help y en la documentación actual.
source ~/lerobot-env/bin/activate # el entorno del tema 3
lerobot-find-port # desconecta y vuelve a conectar cuando te lo pida: muestra el puerto
# IDs de los servos (un servo a la vez en el cable, sigue las instrucciones en pantalla)
lerobot-setup-motors --robot.type=so101_follower --robot.port=/dev/ttyACM0
lerobot-setup-motors --teleop.type=so101_leader --teleop.port=/dev/ttyACM1
# calibración (brazo montado; el id le da nombre al archivo de calibración)
lerobot-calibrate --robot.type=so101_follower --robot.port=/dev/ttyACM0 --robot.id=seguidor
lerobot-calibrate --teleop.type=so101_leader --teleop.port=/dev/ttyACM1 --teleop.id=lider
Cómo verificar
- ✓lerobot-find-port muestra un puerto diferente para cada brazo.
- ✓La calibración termina sin errores e indica dónde guardó el archivo del seguidor y del lider.
- ✗¿«Permission denied» en el puerto (Linux)? Consulta el tema 3: falta agregar tu usuario al grupo dialout.
- ✗¿Servo «no encontrado»? Puede ser un cable flojo, la fuente apagada o un ID repetido.
Cómo leer: el arco gris muestra el giro que puede hacer el servo; el teal, lo que permite el montaje antes de que una pieza choque con otra. La calibración mide el teal y el centro (línea cian). Así, «50 % del codo» significa la misma pose en el líder y el seguidor, aunque los servos estén montados en ángulos diferentes.
Por qué aprender
Casi todos los problemas de un brazo que «tiembla», «se mueve hacia el lado equivocado» o «no copia bien» se deben a un ID incorrecto o a una mala calibración. Hacer esta etapa con calma te ahorra horas buscando fallas durante el entrenamiento del módulo 5.4.
Conceptos clave
🐍 Instalar LeRobot (Python)
LeRobot se instala mediante pip, dentro de un entorno virtual solo para él (incluye PyTorch, que es grande y tiene sus propias versiones). El extra feetech instala el soporte para los servos del SO-101; para entrenar en el 5.4 necesitarás más extras. La documentación oficial también muestra la instalación con conda y ffmpeg (que se usa para grabar videos de los episodios). Los nombres de los extras y la versión de Python requerida cambian: consulta la página de instalación antes de empezar.
Objetivo: crear el entorno, instalar LeRobot con soporte para los servos Feetech y habilitar el puerto USB.
python3 -m venv ~/lerobot-env
source ~/lerobot-env/bin/activate
pip install --upgrade pip
pip install "lerobot[feetech]" # comprueba la versión y los extras en la documentación actual
pip show lerobot # muestra la versión instalada
lerobot-find-port --help # deben existir los comandos lerobot-*
# Linux: permiso para usar los puertos USB sin sudo (después, sal y vuelve a iniciar sesión)
sudo usermod -aG dialout $USER
Cómo verificar
- ✓pip show lerobot muestra "Name: lerobot" y un número de versión; anótalo junto con tu proyecto.
- ✓lerobot-find-port --help imprime el modo de uso, sin "command not found".
- ✗¿"command not found"? El entorno no está activo: ejecuta el source de nuevo en cada terminal nueva.
✓ Hazlo
- ✓Un entorno solo para LeRobot, separado de 5.1 y 5.2.
- ✓Anota la versión que funcionó y fíjala (lerobot==X.Y.Z).
- ✓Lee el --help de cada comando antes de copiarlo de un tutorial.
✗ No lo hagas
- ✗sudo pip install en el Python del sistema.
- ✗Actualizar LeRobot a mitad de un proyecto sin probar antes.
- ✗Copiar comandos de videos antiguos: las flags ya cambiaron de nombre.
💡 Consulta también (proyectos INEMA)
La guía robotica-so101 arma el gemelo del SO-101 en la simulación, y robotica-real2sim transforma la foto de la mesa en una escena que entrena al robot, con un capítulo sobre el brazo real. Los comandos de este módulo se verificaron en esas guías.
Por qué aprender
Las bibliotecas de IA para robots cambian rápido. Saber aislar la instalación, comprobar la versión y leer el --help es lo que hace que un proyecto vuelva a funcionar dentro de seis meses, en lugar de romperse con la primera actualización.
Conceptos clave
🎮 Teleoperación líder/seguidor
En la teleoperación, la computadora repite un ciclo corto: lee la posición de las seis articulaciones del líder, la convierte según la calibración y envía esas mismas posiciones como objetivo al seguidor. Es lo mismo que ocurrirá al grabar demostraciones del módulo 5.4, solo que sin guardar nada. Por eso, antes de grabar, practica aquí: movimientos suaves, sin tirones, siempre dentro del área despejada.
Cómo leer: sigue las flechas color teal de izquierda a derecha y vuelve por la línea cian discontinua: es un ciclo infinito mientras el comando está en ejecución. Si el seguidor parece "atrasado", el ciclo es lento (cable, computadora ocupada o cámara pesada); si se mueve hacia el lado equivocado, el problema está en el recuadro del medio: la calibración.
Objetivo: la primera teleoperación, sin cámaras. Usa los puertos y los id del tema 2. Antes de presionar Enter, coloca el líder en una pose parecida a la del seguidor: al comenzar, el seguidor se mueve rápidamente a la pose del líder.
lerobot-teleoperate \
--robot.type=so101_follower --robot.port=/dev/ttyACM0 --robot.id=seguidor \
--teleop.type=so101_leader --teleop.port=/dev/ttyACM1 --teleop.id=lider
# Ctrl+C termina el programa (no reemplaza el interruptor en la fuente: consulta el tema 6)
Cómo verificar
- ✓Al mover lentamente el líder, el seguidor copia cada articulación, incluida la pinza, sin retraso visible.
- ✓Cinco minutos de uso sin temblores y sin que los servos se calienten al tocarlos.
- ✗¿Una articulación está invertida o tiene mucha holgura? Vuelve a calibrarla antes de continuar.
✓ Buena teleoperación
- ✓Mueve el líder lentamente, como si el seguidor fuera frágil.
- ✓Mira al seguidor, no al líder.
- ✓Repite la misma tarea varias veces de la misma manera.
✗ Mala teleoperación
- ✗Tirones rápidos: el seguidor golpea y el servo se calienta.
- ✗Mantener la pinza cerrada a la fuerza contra un objeto duro durante mucho tiempo.
- ✗Llevar el brazo hasta los límites todo el tiempo.
Por qué aprender
La política del módulo 5.4 aprende a imitar exactamente lo que haces en la teleoperación, incluidos los tirones y las dudas. Aquí, una mano tranquila y repetitiva vale más que un modelo más grande después.
Conceptos clave
📷 Cámaras y espacio de trabajo
Las políticas del módulo 5.4 ven a través de las cámaras, así que el escenario debe ser estable: cámaras fijas, luz constante e fondo sencillo. La configuración habitual usa dos cámaras USB: una al frente (o desde arriba), que ve toda la mesa, y otra en la muñeca o al lado, que ve la pinza de cerca. Cualquier cambio entre la grabación y el uso (la lámpara, el mantel, el ángulo de la cámara) confunde a la política.
Cómo leer: Vista desde arriba: el brazo (iluminado) queda en el borde de la mesa; el semicírculo indica hasta dónde llega, y los objetos de la tarea van dentro de él. Las dos cámaras cian apuntan a esa área. El marco rojo discontinuo delimita el área despejada, y el interruptor de la fuente queda fuera, cerca de ti.
Objetivo: encontrar el índice de cada cámara y teleoperar viendo su imagen junto con las posiciones de las articulaciones.
lerobot-find-cameras opencv # enumera las cámaras y guarda una foto de cada una (consulta el índice)
lerobot-teleoperate \
--robot.type=so101_follower --robot.port=/dev/ttyACM0 --robot.id=seguidor \
--robot.cameras="{ frente: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
--teleop.type=so101_leader --teleop.port=/dev/ttyACM1 --teleop.id=lider \
--display_data=true
Cómo verificar: abre una ventana con la imagen de la cámara "frente" y las posiciones de las articulaciones en tiempo real mientras teleoperas. Para la segunda cámara, agrega otra entrada al diccionario (por ejemplo lateral: {type: opencv, index_or_path: 2, ...}) con el índice que mostró find-cameras . Sintaxis verificada en LeRobot 0.6.1; comprueba la versión.
💡 Marca todo con cinta
Pega cinta a la mesa para marcar la base del brazo, el pie de cada cámara y la posición inicial de los objetos. Toma una foto del montaje. Cuando vayas a grabar en el módulo 5.4 (o alguien mueva algo en la mesa de trabajo), podrás volver a colocar todo en el mismo lugar en un minuto.
Por qué aprender
En el aprendizaje por demostración, la cámara es el sensor principal. Un espacio de trabajo repetible marca la diferencia entre una política que acierta casi siempre y otra que solo funciona en la tarde en que se grabó.
Conceptos clave
🛑 Seguridad con el brazo en movimiento
El SO-101 es pequeño, pero tiene fuerza suficiente para atraparte un dedo con la pinza, derramar un vaso de agua sobre la laptop o golpear en la cara a quien se incline sobre la mesa. Los riesgos aumentan cuando una política entrenada, y no tu mano, tiene el control (módulo 5.4): puede hacer un movimiento que no esperabas. La regla es la del módulo 5.1: la parada no depende del software. Un interruptor en serie con la fuente de los servos, al alcance de la mano, corta la energía de inmediato. Al cortarla, el brazo pierde el soporte y cae sobre la mesa, por eso no debe haber nada frágil debajo.
Rutina antes de cada sesión
Despeja el área
Dentro del alcance, deja solo los objetos de la tarea; líquidos, herramientas y laptop deben quedar fuera de la mesa del brazo.
Prueba el interruptor de la fuente
Enciéndelo, apágalo y vuelve a encenderlo antes de ejecutar cualquier comando. Diles en voz alta a quienes estén cerca dónde está.
Empieza despacio
Durante los primeros segundos de cada ejecución, mantén la mano cerca del interruptor y observa al seguidor. Prueba primero la política nueva sin objetos sobre la mesa.
✓ Hazlo
- ✓Fija la base del brazo a la mesa (con una abrazadera o un tornillo).
- ✓Usa gafas de protección cuando la pinza sujete objetos rígidos.
- ✓Apaga la fuente al terminar y cuando manipules los cables.
- ✓En clase, solo un alumno a la vez dentro del área; los demás deben quedarse detrás de la cinta.
✗ No lo hagas
- ✗Confiar en Ctrl+C como parada de emergencia.
- ✗Poner la mano entre las piezas con la fuente encendida.
- ✗Dejar el brazo encendido sin que nadie lo supervise.
- ✗Usar una fuente con un voltaje distinto al de tus servos.
🌱 ¿Eres nuevo aquí?
Torque es la fuerza de giro del servo. Con el torque activado, la articulación mantiene la posición y ofrece resistencia si la empujas; con el torque desactivado, queda suelta. Un punto de aplastamiento es cualquier lugar donde dos piezas se acercan al moverse (la pinza, el codo al doblarse): ahí es donde puedes lastimarte los dedos.
Por qué aprender
Los hábitos de seguridad que adquieres con un brazo pequeño son los mismos que usa la industria con brazos grandes: área delimitada, parada física y prueba antes de ejecutar. Quien lleve el brazo a una escuela o feria los necesita desde el primer día.
Conceptos clave
✅ Resumen del módulo
Para profundizar
- Documentación de LeRobot — instalación, SO-101 y comandos actuales
- LeRobot en GitHub — código, versiones y notas de cambios
- SO-ARM100 / SO-101 (TheRobotStudio) — archivos de impresión y lista de piezas
- Consulta también: robotica-so101 (INEMA) — gemelo del SO-101 en la simulación
- Consulta también: robotica-real2sim (INEMA) — una foto de la mesa se convierte en una simulación para entrenar al robot
Siguiente módulo
5.4 · Aprendizaje por demostración: grabar episodios, entrenar el ACT y ver cómo el brazo repite la tarea por sí solo.