diff --git a/sites/es/docs/Robotics/Robot_Kits/Lerobot/es_Lerobot_SO100Arm_New.md b/sites/es/docs/Robotics/Robot_Kits/Lerobot/es_Lerobot_SO100Arm_New.md
index 847447be9650f..35df5b95d4a1a 100644
--- a/sites/es/docs/Robotics/Robot_Kits/Lerobot/es_Lerobot_SO100Arm_New.md
+++ b/sites/es/docs/Robotics/Robot_Kits/Lerobot/es_Lerobot_SO100Arm_New.md
@@ -1,26 +1,26 @@
---
-description: Este wiki proporciona el tutorial de ensamblaje y depuración para el SO ARM100 y permite la recopilación de datos y el entrenamiento dentro de la última versión del framework Lerobot.
+description: Este wiki proporciona el tutorial de ensamblaje y depuración para la SO ARM100 y permite la recopilación de datos y el entrenamiento dentro de la última versión del framework Lerobot.
title: SoArm en Lerobot
keywords:
- Lerobot
- Huggingface
- Arm
- - Robotics
+ - Robótica
image: https://files.seeedstudio.com/wiki/robotics/projects/lerobot/Arm_kit.webp
slug: /lerobot_so100m_new
sku: 114993666,114993667,114993668,101090144
last_update:
- date: 3/2/2026
+ date: 3/11/2026
author: ZhangJiaQuan
translation:
skip:
- zh-CN
-createdAt: '2025-09-03'
-updatedAt: '2026-03-05'
+createdAt: '2025-06-05'
+updatedAt: '2026-03-03'
url: https://wiki.seeedstudio.com/es/lerobot_so100m_new/
---
-# Introducción al brazo robótico SO-ARM100 y SO-ARM101 con LeRobot
+# Primeros pasos con los brazos robóticos SO-ARM100 y SO-ARM101 con LeRobot
:::tip
El mantenimiento de este tutorial se ha actualizado a la última versión de [lerobot](https://huggingface.co/docs/lerobot/index); si deseas consultar el tutorial de la versión anterior, haz clic [aquí](https://wiki.seeedstudio.com/es/lerobot_so100m/).
@@ -28,7 +28,7 @@ El mantenimiento de este tutorial se ha actualizado a la última versión de [le
## Introducción
-El [SO-10xARM](https://github.com/TheRobotStudio/SO-ARM100) es un proyecto de brazo robótico totalmente de código abierto lanzado por [TheRobotStudio](https://www.therobotstudio.com/). Incluye el brazo seguidor y el brazo robótico líder, y también proporciona archivos detallados de impresión 3D y guías de operación. [LeRobot](https://github.com/huggingface/lerobot/tree/main) se compromete a proporcionar modelos, conjuntos de datos y herramientas para robótica en el mundo real en PyTorch. Su objetivo es reducir la barrera de entrada a la robótica, permitiendo que todos contribuyan y se beneficien compartiendo conjuntos de datos y modelos preentrenados. LeRobot integra metodologías de vanguardia validadas para aplicaciones en el mundo real, centrándose en el aprendizaje por imitación. Ha proporcionado un conjunto de modelos preentrenados, conjuntos de datos con demostraciones recopiladas por humanos y entornos de simulación, lo que permite a los usuarios comenzar sin necesidad de ensamblar robots. En las próximas semanas, la intención es aumentar el soporte para robótica en el mundo real en los robots más rentables y competentes disponibles actualmente.
+El [SO-10xARM](https://github.com/TheRobotStudio/SO-ARM100) es un proyecto de brazo robótico totalmente de código abierto lanzado por [TheRobotStudio](https://www.therobotstudio.com/). Incluye el brazo seguidor y el brazo robótico líder, y también proporciona archivos detallados de impresión 3D y guías de operación. [LeRobot](https://github.com/huggingface/lerobot/tree/main) se compromete a proporcionar modelos, conjuntos de datos y herramientas para robótica en el mundo real en PyTorch. Su objetivo es reducir la barrera de entrada a la robótica, permitiendo que todos contribuyan y se beneficien del intercambio de conjuntos de datos y modelos preentrenados. LeRobot integra metodologías de vanguardia validadas para aplicaciones en el mundo real, centrándose en el aprendizaje por imitación. Ha proporcionado un conjunto de modelos preentrenados, conjuntos de datos con demostraciones recopiladas por humanos y entornos de simulación, lo que permite a los usuarios comenzar sin necesidad de ensamblar robots. En las próximas semanas, la intención es aumentar el soporte para robótica en el mundo real en los robots más rentables y competentes disponibles actualmente.
@@ -36,8 +36,8 @@ El [SO-10xARM](https://github.com/TheRobotStudio/SO-ARM100) es un proyecto de br
## Introducción a los proyectos
-El kit de robot inteligente SO-ARM10x y reComputer Jetson AI combina a la perfección el control de brazo robótico de alta precisión con una potente plataforma de computación de IA, proporcionando una solución integral de desarrollo de robots. Este kit se basa en la plataforma Jetson Orin o AGX Orin, combinada con el brazo robótico SO-ARM10x y el framework de IA LeRobot, ofreciendo a los usuarios un sistema de robot inteligente aplicable a múltiples escenarios como educación, investigación y automatización industrial.
-Este wiki proporciona el tutorial de ensamblaje y depuración para el SO ARM10x y permite la recopilación de datos y el entrenamiento dentro del framework Lerobot.
+El kit de robot inteligente SO-ARM10x y reComputer Jetson AI combina a la perfección el control de brazo robótico de alta precisión con una potente plataforma de computación de IA, proporcionando una solución integral de desarrollo robótico. Este kit se basa en la plataforma Jetson Orin o AGX Orin, combinada con el brazo robótico SO-ARM10x y el framework de IA LeRobot, ofreciendo a los usuarios un sistema robótico inteligente aplicable a múltiples escenarios como educación, investigación y automatización industrial.
+Este wiki proporciona el tutorial de ensamblaje y depuración para la SO ARM10x y permite la recopilación de datos y el entrenamiento dentro del framework Lerobot.
-## Especificación
+## Especificaciones
@@ -162,40 +162,40 @@ Si compras la versión Arm Kit, ambas fuentes de alimentación son de 5V. Si com
**Para Jetson Orin:**
-- Jetson JetPack 6.0 y 6.1, no soporta 6.1
+- Jetson JetPack 6.0 y 6.1, no compatible con 6.1
- Python 3.10
- Torch 2.3+
## Tabla de contenidos
- [A. Guía de impresión 3D](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#guía-de-impresión-3d)
+ [A. Guía de impresión 3D](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Guía-de-impresión-3D)
- [B. Install LeRobot](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#install-lerobot)
+ [B. Instalar LeRobot](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Instalar-LeRobot)
- [C. Configure the motors](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#configure-the-motors)
+ [C. Configurar los motores](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Configurar-los-motores)
- [D. Assembly](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#assembly)
+ [D. Ensamblaje](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Ensamblaje)
- [E. Calibrate](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#calibrate)
+ [E. Calibrar](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Calibrar)
- [F. Teleoperate](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#teleoperate)
+ [F. Teleoperar](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Teleoperar)
- [G. Add cameras](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#add-cameras)
+ [G. Añadir cámaras](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Añadir-cámaras)
- [H. Record the dataset](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#record-the-dataset)
+ [H. Registrar el conjunto de datos](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Registrar-el-conjunto-de-datos)
- [I. Visualize the dataset](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#visualize-the-dataset)
+ [I. Visualizar el conjunto de datos](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Visualizar-el-conjunto-de-datos)
- [J. Replay an episode](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#replay-an-episode)
+ [J. Reproducir un episodio](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Reproducir-un-episodio)
- [K. Train a policy](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#train-a-policy)
+ [K. Entrenar una política](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Entrenar-una-política)
- [L. Evaluate your policy](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#evaluate-your-policy)
+ [L. Evaluar tu política](https://wiki.seeedstudio.com/es/lerobot_so100m_new/#Evaluar-tu-política)
## Guía de impresión 3D
:::caution
-Tras la actualización oficial de SO101, SO100 ya no será compatible y los archivos fuente se eliminarán según lo indicado oficialmente, pero aún se pueden encontrar los archivos fuente en nuestro [Makerworld](https://makerworld.com/zh/models/908660). Sin embargo, para los usuarios que hayan comprado previamente SO100, los tutoriales y métodos de instalación siguen siendo compatibles. La impresión de SO101 es totalmente compatible con la instalación del kit de motor de SO100.
+Tras la actualización oficial de SO101, SO100 dejará de recibir soporte y los archivos fuente se eliminarán según lo indicado oficialmente, pero los archivos fuente aún pueden encontrarse en nuestro [Makerworld](https://makerworld.com/zh/models/908660). Sin embargo, para los usuarios que hayan comprado previamente SO100, los tutoriales y métodos de instalación siguen siendo compatibles. La impresión de SO101 es totalmente compatible con la instalación del kit de motor de SO100.
:::
### Paso 1: Elegir una impresora
@@ -212,13 +212,13 @@ Los archivos STL proporcionados están listos para imprimirse en muchas impresor
- Limpia la cama de impresión, asegurándote de que esté libre de polvo o grasa. Si limpias la cama con agua u otro líquido, sécala.
- Si tu impresora lo recomienda, utiliza un pegamento en barra estándar y aplica una capa fina y uniforme de pegamento en toda el área de impresión de la cama. Evita los grumos o una aplicación desigual.
- Carga el filamento de la impresora siguiendo las instrucciones específicas de la impresora.
-- Asegúrate de que la configuración de la impresora coincida con la sugerida anteriormente (la mayoría de las impresoras tienen múltiples configuraciones, así que elige las que más se acerquen).
-- Configura soportes en todas partes, pero ignora las pendientes mayores de 45 grados con respecto a la horizontal.
+- Asegúrate de que la configuración de la impresora coincida con la sugerida arriba (la mayoría de las impresoras tienen múltiples configuraciones, así que elige las que más se acerquen).
+- Configura soportes en todas partes, pero ignora las pendientes mayores de 45 grados respecto a la horizontal.
- No debe haber soportes en los orificios de los tornillos con ejes horizontales.
### Paso 3: Imprimir las piezas
-Todas las piezas para el líder o el seguidor están preparadas para una fácil impresión 3D en un solo archivo, correctamente orientadas con el eje z hacia arriba para minimizar los soportes.
+Todas las piezas para el líder o el seguidor están preparadas para una fácil impresión 3D en un único archivo, correctamente orientadas con z hacia arriba para minimizar los soportes.
- Para camas de impresión de 220mmx220mm (como la Ender), imprime estos archivos:
- [Follower](https://github.com/TheRobotStudio/SO-ARM100/blob/main/STL/SO101/Follower/Ender_Follower_SO101.stl)
@@ -230,7 +230,7 @@ Todas las piezas para el líder o el seguidor están preparadas para una fácil
## Instalar LeRobot
-Entornos como pytorch y torchvision deben instalarse en función de tu CUDA.
+Entornos como pytorch y torchvision deben instalarse en función de tu versión de CUDA.
1. Instalar Miniconda:
Para Jetson:
@@ -254,7 +254,7 @@ source ~/miniconda3/bin/activate
conda init --all
```
-2. Crear y activar un entorno conda nuevo para lerobot
+2. Crea y activa un entorno conda nuevo para lerobot
```bash
conda create -y -n lerobot python=3.10 && conda activate lerobot
@@ -266,7 +266,7 @@ conda create -y -n lerobot python=3.10 && conda activate lerobot
git clone https://github.com/Seeed-Projects/lerobot.git ~/lerobot
```
-4. Al usar miniconda, instala ffmpeg en tu entorno:
+4. Cuando uses miniconda, instala ffmpeg en tu entorno:
```bash
conda install ffmpeg -c conda-forge
@@ -298,7 +298,7 @@ Si encuentras un error como este, también puedes usar este comando.
cd ~/lerobot && pip install -e ".[feetech]"
```
-Para dispositivos Jetson Jetpack 6.0+ (asegúrate de instalar [Pytorch-gpu and Torchvision](https://github.com/Seeed-Projects/reComputer-Jetson-for-Beginners/tree/main/3-Basic-Tools-and-Getting-Started/3.5-Pytorch) desde el paso 5 antes de ejecutar este paso):
+Para dispositivos Jetson Jetpack 6.0+ (asegúrate de instalar [Pytorch-gpu y Torchvision](https://github.com/Seeed-Projects/reComputer-Jetson-for-Beginners/tree/main/3-Basic-Tools-and-Getting-Started/3.5-Pytorch) desde el paso 5 antes de ejecutar este paso):
```bash
conda install -y -c conda-forge "opencv>=4.10.0.84" # Install OpenCV and other dependencies through conda, this step is only for Jetson Jetpack 6.0+
@@ -311,7 +311,7 @@ pip3 install numpy==1.26.0 # This should match torchvision
6. Comprobar Pytorch y Torchvision
-Dado que instalar el entorno lerobot mediante pip desinstalará el Pytorch y Torchvision originales e instalará las versiones de CPU de Pytorch y Torchvision, necesitas realizar una comprobación en Python.
+Dado que instalar el entorno lerobot mediante pip desinstalará las versiones originales de Pytorch y Torchvision e instalará las versiones de CPU de Pytorch y Torchvision, necesitas realizar una comprobación en Python.
```python
import torch
@@ -331,9 +331,9 @@ import TabItem from '@theme/TabItem';
-El proceso de calibración e inicialización del servo para SO-ARM101 es el mismo que el de SO-ARM100 tanto en método como en código. Sin embargo, ten en cuenta que las relaciones de engranajes de las tres primeras articulaciones del brazo líder SO-ARM101 difieren de las de SO-ARM100, por lo que es importante distinguirlas y calibrarlas cuidadosamente.
+El proceso de calibración e inicialización del servo para el SO-ARM101 es el mismo que el del SO-ARM100 tanto en método como en código. Sin embargo, ten en cuenta que las relaciones de engranajes de las tres primeras articulaciones del brazo líder SO-ARM101 difieren de las del SO-ARM100, por lo que es importante distinguirlas y calibrarlas cuidadosamente.
-Para configurar los motores, asigna un adaptador de bus servo y 6 motores para tu brazo líder, y de manera similar el otro adaptador de bus servo y 6 motores para el brazo seguidor. Es conveniente etiquetarlos y escribir en cada motor si es para el seguidor F o para el líder L y su ID de 1 a 6. Usamos **F1–F6** para representar las articulaciones 1 a 6 del **Follower Arm**, y **L1–L6** para representar las articulaciones 1 a 6 del **Leader Arm**. El modelo de servo correspondiente, las asignaciones de articulaciones y los detalles de la relación de engranajes son los siguientes:
+Para configurar los motores, asigna un adaptador de bus servo y 6 motores para tu brazo líder, y de forma similar el otro adaptador de bus servo y 6 motores para el brazo seguidor. Es conveniente etiquetarlos y escribir en cada motor si es para el seguidor F o para el líder L y su ID de 1 a 6. Usamos **F1–F6** para representar las articulaciones 1 a 6 del **Brazo Seguidor**, y **L1–L6** para representar las articulaciones 1 a 6 del **Brazo Líder**. El modelo de servo correspondiente, las asignaciones de articulaciones y los detalles de la relación de engranajes son los siguientes:
| Modelo de servo | Relación de engranajes | Articulaciones correspondientes |
|----------------------------------------|------------|------------------------------|
@@ -344,7 +344,7 @@ Para configurar los motores, asigna un adaptador de bus servo y 6 motores para t
| ST-3215-C001(7.4V) / C018(12V) / C047(12V) | 1:345 | F1–F6 |
:::danger
-Ahora debes conectar la fuente de alimentación de 5V o 12V al bus del motor. 5V para los motores STS3215 de 7.4V y 12V para los motores STS3215 de 12V. Ten en cuenta que el brazo líder siempre usa los motores de 7.4V, así que asegúrate de conectar la fuente de alimentación correcta si tienes motores de 12V y 7.4V, ¡de lo contrario podrías quemar tus motores! Ahora, conecta el bus del motor a tu ordenador mediante USB. Ten en cuenta que el USB no proporciona alimentación, y tanto la fuente de alimentación como el USB deben estar conectados.
+Ahora debes conectar la fuente de alimentación de 5V o 12V al bus de motores. 5V para los motores STS3215 de 7.4V y 12V para los motores STS3215 de 12V. Ten en cuenta que el brazo líder siempre usa los motores de 7.4V, así que asegúrate de conectar la fuente de alimentación correcta si tienes motores de 12V y 7.4V, ¡de lo contrario podrías quemar tus motores! Ahora, conecta el bus de motores a tu ordenador mediante USB. Ten en cuenta que el USB no proporciona alimentación, y tanto la fuente de alimentación como el USB deben estar conectados.
:::
@@ -389,13 +389,13 @@ sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1
```
-**Configurar tus motores**
+**Configura tus motores**
:::danger
-Utiliza una fuente de alimentación de 5V para calibrar los motores del Leader (ST-3215-C046, C044, 001).
+Utiliza una fuente de alimentación de 5V para calibrar los motores del Líder (ST-3215-C046, C044, 001).
:::
-| **Calibración de la articulación 6 del Leader Arm** | **Calibración de la articulación 5 del Leader Arm** | **Calibración de la articulación 4 del Leader Arm** | **Calibración de la articulación 3 del Leader Arm** | **Calibración de la articulación 2 del Leader Arm** | **Calibración de la articulación 1 del Leader Arm** |
+| **Calibración de la articulación 6 del Brazo Líder** | **Calibración de la articulación 5 del Brazo Líder** | **Calibración de la articulación 4 del Brazo Líder** | **Calibración de la articulación 3 del Brazo Líder** | **Calibración de la articulación 2 del Brazo Líder** | **Calibración de la articulación 1 del Brazo Líder** |
|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|
|  |  |  | | | |
@@ -403,12 +403,12 @@ Utiliza una fuente de alimentación de 5V para calibrar los motores del Leader (
Si compras la versión Arm Kit (ST-3215-C001), utiliza una fuente de alimentación de 5V. Si compras la versión Arm Kit Pro, utiliza una fuente de alimentación de 12V para calibrar el servo (ST-3215-C047/ST-3215-C018).
:::
-| **Calibración de la articulación 6 del Follower Arm** | **Calibración de la articulación 5 del Follower Arm** | **Calibración de la articulación 4 del Follower Arm** | **Calibración de la articulación 3 del Follower Arm** | **Calibración de la articulación 2 del Follower Arm** | **Calibración de la articulación 1 del Follower Arm** |
+| **Calibración de la articulación 6 del Brazo Seguidor** | **Calibración de la articulación 5 del Brazo Seguidor** | **Calibración de la articulación 4 del Brazo Seguidor** | **Calibración de la articulación 3 del Brazo Seguidor** | **Calibración de la articulación 2 del Brazo Seguidor** | **Calibración de la articulación 1 del Brazo Seguidor** |
|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|
|  |  |  | | | |
:::tip
-Nuevamente, asegúrate de que los ID de las articulaciones de los servos y las relaciones de engranajes correspondan estrictamente a las del SO-ARM101.
+Nuevamente, asegúrate de que los IDs de las articulaciones de los servos y las relaciones de engranajes correspondan estrictamente a las del SO-ARM101.
:::
Conecta el cable USB desde tu ordenador y la fuente de alimentación a la placa controladora del brazo seguidor. Luego, ejecuta el siguiente comando.
@@ -449,7 +449,7 @@ Repite la operación para cada motor según se indique.
Comprueba el cableado en cada paso antes de pulsar Enter. Por ejemplo, el cable de la fuente de alimentación podría desconectarse mientras manipulas la placa.
:::
-Cuando termines, el script simplemente finalizará, momento en el cual los motores estarán listos para usarse. Ahora puedes conectar el cable de 3 pines de cada motor al siguiente, y el cable del primer motor (el “shoulder pan” con id=1) a la placa controladora, que ahora puede fijarse a la base del brazo.
+Cuando termines, el script simplemente finalizará, momento en el cual los motores estarán listos para usarse. Ahora puedes conectar el cable de 3 pines de cada motor al siguiente, y el cable del primer motor (el “giro de hombro” con id=1) a la placa controladora, que ahora puede fijarse a la base del brazo.
Realiza los mismos pasos para el brazo líder.
@@ -467,12 +467,12 @@ lerobot-setup-motors \
-## Montaje
+## Ensamblaje
:::tip
-- El proceso de montaje de doble brazo del SO-ARM101 es el mismo que el del SO-ARM100. Las únicas diferencias son la adición de clips para cables en el SO-ARM101 y las diferentes relaciones de engranajes de los servos de las articulaciones en el Leader Arm. Por lo tanto, tanto el SO100 como el SO101 pueden instalarse haciendo referencia al siguiente contenido.
-- Antes del montaje, vuelve a comprobar el modelo de tu motor y la relación de reducción. Si has comprado el SO100, puedes ignorar este paso. Si has comprado el SO101, consulta la siguiente tabla para distinguir F1 a F6 y L1 a L6.
+- El proceso de ensamblaje de doble brazo del SO-ARM101 es el mismo que el del SO-ARM100. Las únicas diferencias son la adición de clips para cables en el SO-ARM101 y las diferentes relaciones de engranajes de los servos de las articulaciones en el Brazo Líder. Por lo tanto, tanto el SO100 como el SO101 pueden instalarse haciendo referencia al siguiente contenido.
+- Antes del ensamblaje, vuelve a comprobar el modelo de tu motor y la relación de reducción. Si has comprado el SO100, puedes ignorar este paso. Si has comprado el SO101, consulta la siguiente tabla para distinguir F1 a F6 y L1 a L6.
:::
@@ -485,10 +485,10 @@ lerobot-setup-motors \
| ST-3215-C001(7.4V) / C018(12V) / C047(12V) | 1:345 | F1–F6 |
:::danger
-Si compraste el **SO101 Arm Kit Standard Edition**, todas las fuentes de alimentación son de 5V. Si compraste el **SO101 Arm Kit Pro Edition**, el Leader Arm debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 5V, mientras que el Follower Arm debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 12V.
+Si compraste el **SO101 Arm Kit Standard Edition**, todas las fuentes de alimentación son de 5V. Si compraste el **SO101 Arm Kit Pro Edition**, el Brazo Líder debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 5V, mientras que el Brazo Seguidor debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 12V.
:::
-**Montar Leader Arm**
+**Ensamblar Brazo Líder**
| **Paso 1** | **Paso 2** | **Paso 3** | **Paso 4** | **Paso 5** | **Paso 6** |
|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|
@@ -500,11 +500,11 @@ Si compraste el **SO101 Arm Kit Standard Edition**, todas las fuentes de aliment
| **Paso 19** | **Paso 20** |
|  |  |
-**Montar Follower Arm**
+**Ensamblar Brazo Seguidor**
:::tip
-- Los pasos para montar el Follower Arm son, en general, los mismos que para el Leader Arm. La única diferencia radica en el método de instalación del efector final (garra y empuñadura) después del Paso 12.
+- Los pasos para ensamblar el Brazo Seguidor son, en general, los mismos que para el Brazo Líder. La única diferencia radica en el método de instalación del efector final (garra y empuñadura) después del Paso 12.
:::
@@ -519,22 +519,22 @@ Si compraste el **SO101 Arm Kit Standard Edition**, todas las fuentes de aliment
## Calibración
:::tip
-Los códigos de SO100 y SO101 son compatibles. Los usuarios de SO100 pueden utilizar directamente los parámetros y el código de SO101 para su funcionamiento.
+Los códigos de SO100 y SO101 son compatibles. Los usuarios de SO100 pueden utilizar directamente los parámetros y el código de SO101 para la operación.
:::
:::danger
-Si compraste el **SO101 Arm Kit Standard Edition**, todas las fuentes de alimentación son de 5V. Si compraste el **SO101 Arm Kit Pro Edition**, el Leader Arm debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 5V, mientras que el Follower Arm debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 12V.
+Si compraste el **SO101 Arm Kit Standard Edition**, todas las fuentes de alimentación son de 5V. Si compraste el **SO101 Arm Kit Pro Edition**, el Brazo Líder debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 5V, mientras que el Brazo Seguidor debe calibrarse y operarse en cada paso utilizando una fuente de alimentación de 12V.
:::
-A continuación, debes conectar la fuente de alimentación y el cable de datos a tu robot SO-10x para la calibración, a fin de garantizar que los brazos líder y seguidor tengan los mismos valores de posición cuando se encuentren en la misma posición física. Esta calibración es esencial porque permite que una red neuronal entrenada en un robot SO-10x funcione en otro. Si necesitas recalibrar el brazo robótico, elimina los archivos en `~/.cache/huggingface/lerobot/calibration/robots` o `~/.cache/huggingface/lerobot/calibration/teleoperators` y vuelve a calibrar el brazo robótico. De lo contrario, aparecerá un mensaje de error. La información de calibración del brazo robótico se almacenará en los archivos JSON de este directorio.
+A continuación, debes conectar la fuente de alimentación y el cable de datos a tu robot SO-10x para la calibración, a fin de garantizar que los brazos líder y seguidor tengan los mismos valores de posición cuando estén en la misma posición física. Esta calibración es esencial porque permite que una red neuronal entrenada en un robot SO-10x funcione en otro. Si necesitas recalibrar el brazo robótico, elimina los archivos en `~/.cache/huggingface/lerobot/calibration/robots` o `~/.cache/huggingface/lerobot/calibration/teleoperators` y vuelve a calibrar el brazo robótico. De lo contrario, aparecerá un mensaje de error. La información de calibración del brazo robótico se almacenará en los archivos JSON de este directorio.
:::tip
-En PC (Linux) y dispositivos Jetson, el primer dispositivo USB que conectas normalmente se asigna a `ttyACM0`, y el segundo se asigna a `ttyACM1`. Verifica dos veces qué puerto está asignado al líder y al seguidor antes de ejecutar comandos.
+En PC (Linux) y dispositivos Jetson, el primer dispositivo USB que conectas normalmente se asigna a `ttyACM0`, y el segundo se asigna a `ttyACM1`. Verifica dos veces qué puerto está asignado al líder y al seguidor antes de ejecutar los comandos.
:::
**Calibración manual del brazo seguidor**
-Conecta las interfaces de los 6 servomotores del robot mediante un cable de 3 pines y conecta el servo del chasis a la placa de control de servos, luego ejecuta el siguiente comando o ejemplo de API para calibrar el brazo robótico:
+Conecta las interfaces de los 6 servomotores del robot mediante un cable de 3 pines y conecta el servomotor del chasis a la placa de accionamiento de servos, luego ejecuta el siguiente comando o ejemplo de API para calibrar el brazo robótico:
***Primero se otorgan los permisos de la interfaz***
@@ -551,7 +551,7 @@ lerobot-calibrate \
--robot.id=my_awesome_follower_arm # <- Give the robot a unique name
```
-El siguiente video muestra cómo realizar la calibración. Primero debes mover el robot a la posición en la que todas las articulaciones estén en el centro de sus rangos. Luego, después de pulsar Enter, tienes que mover cada articulación a lo largo de todo su rango de movimiento.
+El siguiente video muestra cómo realizar la calibración. Primero debes mover el robot a la posición en la que todas las articulaciones estén en el centro de sus rangos. Luego, después de presionar Enter, debes mover cada articulación a lo largo de todo su rango de movimiento.
**Calibración manual del brazo líder**
@@ -568,13 +568,13 @@ lerobot-calibrate \
-### (Opcional) Calibración de posición central con la herramienta rápida SoARM de Seeed Studio
+### (Opcional) Calibración de posición media con la herramienta rápida Seeed Studio SoARM
Al calibrar o ejecutar el robot, si ves errores como:
`Magnitude 30841 exceeds 2047 (max for sign_bit_index=11)`
-Esto normalmente significa que la posición actual / desplazamiento de cero de un servo es anormal, lo que hace que el ángulo leído exceda el rango esperado. En ese caso, puedes usar la herramienta SoARM de Seeed Studio para hacer una **calibración de posición central** (escribir la posición actual en el valor central **2048**) y luego repetir la calibración de todo el brazo.
+Esto generalmente significa que la posición actual / el desplazamiento de cero de un servomotor es anormal, lo que hace que el ángulo leído exceda el rango esperado. En ese caso, puedes usar la herramienta SoARM de Seeed Studio para hacer una **calibración de posición media** (escribir la posición actual en el valor medio **2048**), y luego repetir la calibración de todo el brazo.
#### 1) Clonar la herramienta desde GitHub e instalar dependencias
@@ -584,15 +584,15 @@ cd Seeed_RoboController
pip install -r requirements.txt
```
-#### 2) Calibración de posición central y verificación
+#### 2) Calibración de posición media y verificación
Ubicación de los scripts:
-- `src/tools/servo_middle_calibration.py`: calibración de posición central (escribe la posición actual como **2048**)
-- `src/tools/servo_disable.py`: desactivar el par del servo (más fácil girar las articulaciones a mano)
+- `src/tools/servo_middle_calibration.py`: calibración de posición media (escribe la posición actual como **2048**)
+- `src/tools/servo_disable.py`: desactivar el par del servomotor (más fácil girar las articulaciones a mano)
- `src/tools/servo_center_test.py`: mover a **2048** para verificar el resultado de la calibración
-Ejecuta en orden (los comandos te pedirán de forma interactiva que selecciones un puerto):
+Ejecuta en orden (los comandos te pedirán interactivamente que selecciones un puerto):
1. (Opcional) Desactiva el par para ajustar las articulaciones manualmente:
@@ -600,26 +600,26 @@ Ejecuta en orden (los comandos te pedirán de forma interactiva que selecciones
python -m src.tools.servo_disable
```
-2. Realiza la calibración de posición central (establece la posición actual en 2048):
+2. Realiza la calibración de posición media (establece la posición actual en 2048):
```bash
python -m src.tools.servo_middle_calibration
```
-3. Verifica: mueve el servo a 2048 y comprueba si vuelve a la posición central esperada:
+3. Verifica: mueve el servomotor a 2048 y comprueba si vuelve a la posición media esperada:
```bash
python -m src.tools.servo_center_test
```
-Después de la calibración de posición central, vuelve a los pasos de `lerobot-calibrate` anteriores y repite la calibración de todo el brazo.
+Después de la calibración de posición media, vuelve a los pasos de `lerobot-calibrate` anteriores y repite la calibración de todo el brazo.
## Teleoperar
**Teleoperación simple**
-Entonces ya estás listo para teleoperar tu robot. Ejecuta este script sencillo (no conectará ni mostrará las cámaras):
+Entonces ya estás listo para teleoperar tu robot. Ejecuta este script sencillo (no se conectará ni mostrará las cámaras):
-Ten en cuenta que el id asociado a un robot se utiliza para almacenar el archivo de calibración. Es importante usar el mismo id al teleoperar, registrar y evaluar cuando se utiliza la misma configuración.
+Ten en cuenta que el id asociado a un robot se utiliza para almacenar el archivo de calibración. Es importante usar el mismo id al teleoperar, grabar y evaluar cuando uses la misma configuración.
```bash
sudo chmod 666 /dev/ttyACM*
@@ -658,7 +658,7 @@ El comando de teleoperación hará automáticamente lo siguiente:
Consigue uno ahora 🖱️
-- 🚀 Paso 1: Instalar el entorno de dependencias del Orbbec SDK
+- 🚀 Paso 1: Instalar el entorno de dependencias del SDK de Orbbec
1. Clona el repositorio `pyorbbec`
@@ -690,14 +690,14 @@ El comando de teleoperación hará automáticamente lo siguiente:
Se pueden ignorar los mensajes de error en rojo.
-4. Clona el Orbbec SDK en el directorio `~/lerobot/src/lerobot/cameras`
+4. Clona el SDK de Orbbec en el directorio `~/lerobot/src/lerobot/cameras`
```bash
cd ~/lerobot/src/lerobot/cameras
git clone https://github.com/ZhuYaoHui1998/orbbec.git
```
-5. Modifica utils.py y **init**.py
+5. Modificar utils.py y **init**.py
- Busca `utils.py` en el directorio `~/lerobot/src/lerobot/cameras` y añade el siguiente código aproximadamente en la línea 45:
@@ -724,7 +724,7 @@ from .orbbec.configuration_orbbec import OrbbecCameraConfig
src="https://files.seeedstudio.com/wiki/robotics/projects/lerobot/starai/init.png" />
-- 🚀 Paso 2: Llamada de funciones y ejemplos
+- 🚀 Paso 2: Llamada de función y ejemplos
En todos los ejemplos siguientes, reemplaza `so101_follower` con el modelo real del brazo robótico que estés usando (por ejemplo, `so100` / `so101`).
@@ -759,7 +759,7 @@ También puedes añadir posteriormente una cámara RGB monocular adicional.
:::tip
-Los códigos de SO100 y SO101 son compatibles. Los usuarios de SO100 pueden utilizar directamente los parámetros y el código de SO101 para su funcionamiento.
+Los códigos de SO100 y SO101 son compatibles. Los usuarios de SO100 pueden utilizar directamente los parámetros y el código de SO101 para la operación.
:::
Para instanciar una cámara, necesitas un identificador de cámara. Este identificador puede cambiar si reinicias tu ordenador o vuelves a conectar tu cámara, un comportamiento que depende principalmente de tu sistema operativo.
@@ -791,10 +791,10 @@ Camera #0:
Puedes encontrar las imágenes tomadas por cada cámara en el directorio `outputs/captured_images`.
:::warning
-Al usar cámaras Intel RealSense en macOS, podrías obtener este error: , esto se puede resolver ejecutando el mismo comando con permisos. Ten en cuenta que usar cámaras RealSense en macOS es inestable.
+Al usar cámaras Intel RealSense en , podrías obtener este error: , esto se puede resolver ejecutando el mismo comando con permisos. Ten en cuenta que usar cámaras RealSense en es inestable.macOSError finding RealSense cameras: failed to set power statesudomacOS.
:::
-Entonces podrás mostrar las cámaras en tu ordenador mientras teleoperas ejecutando el siguiente código. Esto es útil para preparar tu configuración antes de registrar tu primer conjunto de datos.
+Entonces podrás mostrar las cámaras en tu ordenador mientras teleoperas ejecutando el siguiente código. Esto es útil para preparar tu configuración antes de grabar tu primer conjunto de datos.
```bash
lerobot-teleoperate \
@@ -808,14 +808,13 @@ lerobot-teleoperate \
--display_data=true
```
-Si tienes más cámaras, puedes cambiar `--robot.cameras` para añadir cámaras. Debes tener en cuenta el formato de index_or_path, que viene determinado por el último dígito del ID de la cámara que muestra `python -m lerobot.find_cameras opencv`.
+Si tienes más cámaras, puedes cambiar `--robot.cameras` para añadir cámaras. Debes tener en cuenta el formato de index_or_path, que viene determinado por el último dígito del ID de la cámara que se obtiene con `python -m lerobot.find_cameras opencv`.
:::tip
-Las imágenes en el formato `fourcc: "MJPG"` están comprimidas. Puedes probar resoluciones más altas y también puedes intentar el formato `YUYV`. Sin embargo, este último reducirá la resolución de la imagen y los FPS, lo que provocará retrasos en el funcionamiento del brazo robótico. Actualmente, con el formato `MJPG`, se pueden soportar 3 cámaras a una resolución de `1920*1080` manteniendo `30FPS`. Dicho esto, sigue sin recomendarse conectar 2 cámaras a un ordenador a través del mismo HUB USB.
+Las imágenes en formato `fourcc: "MJPG"` están comprimidas. Puedes probar resoluciones más altas y también puedes intentar el formato `YUYV`. Sin embargo, este último reducirá la resolución de la imagen y los FPS, lo que provocará retrasos en el funcionamiento del brazo robótico. Actualmente, con el formato `MJPG`, se pueden soportar 3 cámaras a una resolución de `1920*1080` manteniendo `30FPS`. Aun así, no se recomienda conectar 2 cámaras a un ordenador a través del mismo HUB USB.
:::
-
-Por ejemplo, si quieres añadir una cámara lateral:
+Por ejemplo, quieres añadir una cámara lateral:
```bash
lerobot-teleoperate \
@@ -830,12 +829,11 @@ lerobot-teleoperate \
```
:::tip
-Las imágenes en el formato `fourcc: "MJPG"` están comprimidas. Puedes probar resoluciones más altas y también puedes intentar el formato `YUYV`. Sin embargo, este último reducirá la resolución de la imagen y los FPS, lo que provocará retrasos en el funcionamiento del brazo robótico. Actualmente, con el formato `MJPG`, se pueden soportar 3 cámaras a una resolución de `1920*1080` manteniendo `30FPS`. Dicho esto, sigue sin recomendarse conectar 2 cámaras a un ordenador a través del mismo HUB USB.
+Las imágenes en formato `fourcc: "MJPG"` están comprimidas. Puedes probar resoluciones más altas y también puedes intentar el formato `YUYV`. Sin embargo, este último reducirá la resolución de la imagen y los FPS, lo que provocará retrasos en el funcionamiento del brazo robótico. Actualmente, con el formato `MJPG`, se pueden soportar 3 cámaras a una resolución de `1920*1080` manteniendo `30FPS`. Aun así, no se recomienda conectar 2 cámaras a un ordenador a través del mismo HUB USB.
:::
-
:::tip
-Si encuentras un bug como este.
+Si encuentras un error como este.
[ACT](https://huggingface.co/docs/lerobot/act)
@@ -1060,7 +1057,6 @@ Para entrenar una política para controlar tu robot, utiliza el script [lerobot-
**Entrenar**
-
```bash
lerobot-train \
--dataset.repo_id=${HF_USER}/so101_test \
@@ -1086,14 +1082,13 @@ lerobot-train \
--steps=300000
```
-Expliquémoslo:
+Vamos a explicarlo:
- **Especificación del conjunto de datos**: Proporcionamos el conjunto de datos mediante el parámetro `--dataset.repo_id=${HF_USER}/so101_test`.
-- **Pasos de entrenamiento**: Modificamos el número de pasos de entrenamiento usando `--steps=300000`. El algoritmo usa por defecto 800000 pasos, y puedes ajustarlo según la dificultad de tu tarea y observando la pérdida durante el entrenamiento.
-- **Tipo de política**: Proporcionamos la política con `policy.type=act`. Del mismo modo, puedes cambiar entre políticas como [`act`, `diffusion`, `pi0`, `pi0fast`, `pi0fast`, `sac`, `smolvla`], lo que cargará la configuración desde `configuration_act.py`. Es importante destacar que esta política se adaptará automáticamente a los estados de los motores, acciones de los motores y número de cámaras de tu robot (por ejemplo, `laptop` y `phone`), ya que esta información ya está almacenada en tu conjunto de datos.
-- **Selección de dispositivo**: Usamos `policy.device=cuda` porque estamos entrenando en una GPU Nvidia, pero puedes usar `policy.device=mps` para entrenar en Apple Silicon.
-- **Herramienta de visualización**: Usamos `wandb.enable=true` para visualizar las gráficas de entrenamiento usando [Weights and Biases](https://docs.wandb.ai/quickstart). Esto es opcional, pero si lo utilizas, asegúrate de haber iniciado sesión ejecutando `wandb login`.
-
+- **Pasos de entrenamiento**: Modificamos el número de pasos de entrenamiento usando `--steps=300000`. El algoritmo usa por defecto 800000 pasos, y puedes ajustarlo en función de la dificultad de tu tarea y observando la pérdida durante el entrenamiento.
+- **Tipo de política**: Proporcionamos la política con `policy.type=act`. Del mismo modo, puedes cambiar entre políticas como [`act`, `diffusion`, `pi0`, `pi0fast`, `pi0fast`, `sac`, `smolvla`], lo que cargará la configuración desde `configuration_act.py`. Es importante destacar que esta política se adaptará automáticamente a los estados de los motores, las acciones de los motores y el número de cámaras de tu robot (por ejemplo, `laptop` y `phone`), ya que esta información ya está almacenada en tu conjunto de datos.
+- **Selección de dispositivo**: Proporcionamos `policy.device=cuda` porque estamos entrenando en una GPU Nvidia, pero puedes usar `policy.device=mps` para entrenar en Apple Silicon.
+- **Herramienta de visualización**: Proporcionamos `wandb.enable=true` para visualizar las gráficas de entrenamiento usando [Weights and Biases](https://docs.wandb.ai/quickstart). Esto es opcional, pero si lo utilizas, asegúrate de haber iniciado sesión ejecutando `wandb login`.
**Evaluar**
@@ -1131,9 +1126,9 @@ lerobot-record \
1. El parámetro `--policy.path` indica la ruta al archivo de pesos de los resultados de tu entrenamiento de política (por ejemplo, `outputs/train/act_so101_test/checkpoints/last/pretrained_model`). Si subes el archivo de pesos del resultado del entrenamiento del modelo a Hub, también puedes usar el repositorio del modelo (por ejemplo, `${HF_USER}/act_so100_test`).
-2. El nombre del conjunto de datos `dataset.repo_id` comienza con `eval_`. Esta operación registrará por separado vídeos y datos durante la evaluación, que se guardarán en la carpeta que comience con `eval_`, como `seeed/eval_test123`.
+2. El nombre del conjunto de datos `dataset.repo_id` comienza con `eval_`. Esta operación registrará por separado vídeos y datos durante la evaluación, que se guardarán en la carpeta que comienza con `eval_`, como `seeed/eval_test123`.
-3. Si encuentras `File exists: 'home/xxxx/.cache/huggingface/lerobot/xxxxx/seeed/eval_xxxx'` durante la fase de evaluación, elimina primero la carpeta que comience con `eval_` y luego ejecuta de nuevo el programa.
+3. Si encuentras `File exists: 'home/xxxx/.cache/huggingface/lerobot/xxxxx/seeed/eval_xxxx'` durante la fase de evaluación, elimina primero la carpeta que comienza con `eval_` y luego ejecuta de nuevo el programa.
4. Cuando te encuentres con `mean is infinity. You should either initialize with stats as an argument or use a pretrained model`, ten en cuenta que palabras clave como front y side en el parámetro `--robot.cameras` deben ser estrictamente coherentes con las utilizadas al recopilar el conjunto de datos.
@@ -1141,10 +1136,8 @@ lerobot-record \
-
-
SmolVLA
@@ -1158,9 +1151,9 @@ Instala las dependencias de SmolVLA ejecutando:
pip install -e ".[smolvla]"
```
-**Ajusta SmolVLA con tus datos**
+**Ajusta finamente SmolVLA con tus datos**
-Usa [smolvla_base](https://hf.co/lerobot/smolvla_base), nuestro modelo preentrenado de 450M, y ajústalo con tus datos. Entrenar el modelo durante 20k pasos llevará aproximadamente ~4 horas en una sola GPU A100. Debes ajustar el número de pasos en función del rendimiento y de tu caso de uso.
+Usa [smolvla_base](https://hf.co/lerobot/smolvla_base), nuestro modelo preentrenado de 450M, y ajústalo finamente con tus datos. Entrenar el modelo durante 20k pasos llevará aproximadamente ~4 horas en una sola GPU A100. Debes ajustar el número de pasos en función del rendimiento y de tu caso de uso.
Si no tienes un dispositivo GPU, puedes entrenar usando nuestro cuaderno en [Google Colab](https://colab.research.google.com/github/huggingface/notebooks/blob/main/lerobot/training-smolvla.ipynb).
@@ -1188,9 +1181,9 @@ El ajuste fino es un arte. Para una visión completa de las opciones de ajuste f
lerobot-train --help
```
-**Evalúa el modelo ajustado y ejecútalo en tiempo real**
+**Evalúa el modelo ajustado finamente y ejecútalo en tiempo real**
-De forma similar a cuando grabas un episodio, se recomienda que hayas iniciado sesión en HuggingFace Hub. Puedes seguir los pasos correspondientes: [Record a dataset](https://huggingface.co/docs/lerobot/il_robots). Una vez que hayas iniciado sesión, puedes ejecutar la inferencia en tu configuración haciendo:
+De forma similar a cuando se graba un episodio, se recomienda que hayas iniciado sesión en HuggingFace Hub. Puedes seguir los pasos correspondientes: [Grabar un conjunto de datos](https://huggingface.co/docs/lerobot/il_robots). Una vez que hayas iniciado sesión, puedes ejecutar inferencia en tu configuración haciendo:
```bash
lerobot-record \
@@ -1216,7 +1209,7 @@ Según tu configuración de evaluación, puedes configurar la duración y el nú
LIBERO
-[LIBERO](https://huggingface.co/docs/lerobot/libero) es un benchmark diseñado para estudiar el aprendizaje robótico de por vida. La idea es que los robots no solo se preentrenen una vez en una fábrica, sino que necesiten seguir aprendiendo y adaptándose junto con sus usuarios humanos a lo largo del tiempo. Esta adaptación continua se denomina aprendizaje de por vida en la toma de decisiones (LLDM), y es un paso clave hacia la construcción de robots que se conviertan en ayudantes verdaderamente personalizados.
+[LIBERO](https://huggingface.co/docs/lerobot/libero) es un benchmark diseñado para estudiar el aprendizaje continuo de robots. La idea es que los robots no solo se preentrenarán una vez en una fábrica, sino que necesitarán seguir aprendiendo y adaptándose junto con sus usuarios humanos a lo largo del tiempo. Esta adaptación continua se denomina aprendizaje continuo en la toma de decisiones (LLDM), y es un paso clave hacia la construcción de robots que se conviertan en ayudantes verdaderamente personalizados.
- 📄 [Artículo de LIBERO](https://arxiv.org/abs/2306.03310)
- 💻 [Repositorio original de LIBERO](https://github.com/Lifelong-Robot-Learning/LIBERO)
@@ -1225,7 +1218,7 @@ Según tu configuración de evaluación, puedes configurar la duración y el nú
En **LeRobot**, portamos LIBERO a nuestro framework y lo usamos principalmente para **evaluar** [SmolVLA](https://huggingface.co/docs/lerobot/en/smolvla), nuestro modelo ligero de Visión-Lenguaje-Acción.
-LIBERO es ahora parte de nuestra **simulación con evaluación múltiple**, lo que significa que puedes evaluar tus políticas en un **solo conjunto de tareas** o en **múltiples conjuntos a la vez** con solo una bandera.
+LIBERO es ahora parte de nuestra **simulación con evaluación múltiple**, lo que significa que puedes evaluar tus políticas en un **único conjunto de tareas** o en **múltiples conjuntos a la vez** con solo una bandera.
Para instalar LIBERO, después de seguir las instrucciones oficiales de LeRobot, simplemente ejecuta: `pip install -e ".[libero]"`
@@ -1282,23 +1275,23 @@ lerobot-train \
**Nota sobre el renderizado**
-LeRobot usa MuJoCo para la simulación. Debes configurar el backend de renderizado antes del entrenamiento o la evaluación:
+LeRobot utiliza MuJoCo para la simulación. Debes configurar el backend de renderizado antes del entrenamiento o la evaluación:
- `export MUJOCO_GL=egl` → para servidores sin pantalla (por ejemplo, HPC, nube)
-
[Pi0](https://huggingface.co/docs/lerobot/pi0)
-Consulta [Pi0](https://huggingface.co/docs/lerobot/pi0)
+Consulta [Pi0](https://huggingface.co/docs/lerobot/pi0)
```bash
pip install -e ".[pi]"
```
**Entrenar**
+
```bash
lerobot-train \
--policy.type=pi0 \
@@ -1329,20 +1322,19 @@ lerobot-record \
--policy.path=outputs/pi0_training/checkpoints/last/pretrained_model
```
-
-
[Pi0.5](https://huggingface.co/docs/lerobot/pi05)
-Consulta [Pi0.5](https://huggingface.co/docs/lerobot/pi05)
+Consulta [Pi0.5](https://huggingface.co/docs/lerobot/pi05)
```bash
pip install -e ".[pi]"
```
**Entrenar**
+
```bash
lerobot-train \
--dataset.repo_id=seeed/eval_test123 \
@@ -1373,28 +1365,25 @@ lerobot-record \
--policy.path=outputs/pi05_training/checkpoints/last/pretrained_model
```
-
-
-
[GR00T N1.5](https://huggingface.co/docs/lerobot/groot)
Consulta la documentación oficial: [GR00T N1.5](https://huggingface.co/docs/lerobot/groot).
-GR00T N1.5 es un modelo base abierto de NVIDIA para un razonamiento robótico y aprendizaje de habilidades más generales. Es un modelo **cross-embodiment**: puede tomar entradas multimodales como **language** e **images**, y ejecutar tareas de manipulación en diferentes entornos.
+GR00T N1.5 es un modelo base abierto de NVIDIA para un razonamiento robótico y aprendizaje de habilidades más generales. Es un modelo **multi-cuerpo**: puede tomar entradas multimodales como **lenguaje** e **imágenes**, y ejecutar tareas de manipulación en diferentes entornos.
-En LeRobot, la clave es establecer el tipo de política a `--policy.type=groot`. Ten en cuenta que GR00T N1.5 tiene mayores requisitos de entorno (depende de FlashAttention y requiere una GPU CUDA). Se recomienda primero hacer que ACT / Pi0 funcionen de extremo a extremo y luego probar GR00T.
+En LeRobot, la clave es establecer el tipo de política a `--policy.type=groot`. Ten en cuenta que GR00T N1.5 tiene requisitos de entorno más altos (depende de FlashAttention y requiere una GPU CUDA). Se recomienda primero hacer que ACT / Pi0 funcionen de extremo a extremo y luego probar GR00T.
**Instalación (importante)**
-Según la documentación oficial actual, GR00T N1.5 requiere `flash-attn` y solo puede usarse en hardware compatible con CUDA.
+Según la documentación oficial actual, GR00T N1.5 requiere `flash-attn` y solo puede utilizarse en hardware compatible con CUDA.
Orden recomendado:
-1. Prepara primero tu entorno base (Python, CUDA, controladores, etc.). **No** instales `lerobot` todavía.
-2. Instala PyTorch para tu versión de CUDA (diferentes versiones de CUDA pueden requerir un `--index-url` diferente; sigue la página de instalación de PyTorch).
+1. Prepara primero tu entorno base (Python, CUDA, controladores, etc.). **No** instales aún `lerobot`.
+2. Instala PyTorch para tu versión de CUDA (las diferentes versiones de CUDA pueden requerir un `--index-url` distinto; sigue la página de instalación de PyTorch).
```bash
pip install "torch>=2.2.1,<2.8.0" "torchvision>=0.21.0,<0.23.0"
@@ -1415,12 +1404,12 @@ pip install "lerobot[groot]"
```
:::tip
-Si la instalación de `flash-attn` falla, normalmente se debe a (1) una incompatibilidad entre PyTorch y CUDA, (2) dependencias de compilación faltantes o (3) un entorno demasiado nuevo/demasiado antiguo. Primero contrasta la documentación oficial de GR00T y las instrucciones de instalación de PyTorch.
+Si la instalación de `flash-attn` falla, normalmente se debe a (1) una incompatibilidad entre PyTorch y CUDA, (2) dependencias de compilación que faltan o (3) un entorno demasiado nuevo/demasiado antiguo. Primero contrasta la documentación oficial de GR00T y las instrucciones de instalación de PyTorch.
:::
**Entrenamiento (fine-tuning)**
-La documentación oficial proporciona un ejemplo multi-GPU con `accelerate launch --multi_gpu ...`. Si solo tienes una GPU, aún puedes empezar haciendo que primero funcione una ejecución de un solo proceso (la compatibilidad/argumentos exactos dependen de la documentación oficial).
+La documentación oficial proporciona un ejemplo multi-GPU con `accelerate launch --multi_gpu ...`. Si solo tienes una GPU, aún puedes empezar haciendo que funcione primero una ejecución de un solo proceso (la compatibilidad/argumentos exactos dependen de la documentación oficial).
```bash
accelerate launch \
@@ -1463,14 +1452,14 @@ lerobot-record \
--dataset.reset_time_s=10
```
-Licencia: Apache 2.0 (la misma que el repositorio original de GR00T).
+Licencia: Apache 2.0 (igual que el repositorio original de GR00T).
(Opcional) Fine-tuning eficiente en parámetros (PEFT)
-PEFT (Parameter-Efficient Fine-Tuning) es una familia de métodos y herramientas que ayudan a que un gran modelo preentrenado se adapte a nuevas tareas **sin actualizar todos los parámetros**. Para políticas LeRobot preentrenadas (por ejemplo, SmolVLA, Pi0), a menudo puedes entrenar solo un pequeño conjunto de parámetros “adaptadores” (por ejemplo, LoRA) para reducir el uso de VRAM y el coste de entrenamiento, manteniendo al mismo tiempo un rendimiento cercano al del fine-tuning completo.
+PEFT (Parameter-Efficient Fine-Tuning) es una familia de métodos y herramientas que ayudan a que un modelo grande preentrenado se adapte a nuevas tareas **sin actualizar todos los parámetros**. Para políticas LeRobot preentrenadas (por ejemplo, SmolVLA, Pi0), a menudo puedes entrenar solo un pequeño conjunto de parámetros “adaptadores” (por ejemplo, LoRA) para reducir el uso de VRAM y el coste de entrenamiento, manteniendo un rendimiento cercano al del fine-tuning completo.
**Instalar**
@@ -1484,7 +1473,7 @@ pip install -e ".[peft]"
pip install "lerobot[peft]"
```
-Más conceptos y métodos: [🤗 documentación de PEFT](https://huggingface.co/docs/peft/index).
+Más conceptos y métodos: [🤗 Documentación de PEFT](https://huggingface.co/docs/peft/index).
**Ejemplo: hacer fine-tuning de SmolVLA con LoRA (subtarea LIBERO `libero_spatial`)**
@@ -1540,7 +1529,7 @@ Si quieres que algunos módulos se entrenen completamente (en lugar de solo inye
**Sugerencia de tasa de aprendizaje (regla general)**
-Las tasas de aprendizaje de LoRA suelen ser ~10× más altas que en el fine-tuning completo. Por ejemplo, si el fine-tuning completo usa comúnmente `1e-4`, LoRA puede empezar desde `1e-3`. Si usas un programador de tasa de aprendizaje, la tasa de aprendizaje final suele estar alrededor de `1e-4` como referencia.
+Las tasas de aprendizaje de LoRA suelen ser ~10× más altas que en el fine-tuning completo. Por ejemplo, si el fine-tuning completo usa comúnmente `1e-4`, LoRA puede empezar en `1e-3`. Si utilizas un programador de tasa de aprendizaje, la tasa de aprendizaje final suele estar alrededor de `1e-4` como referencia.
@@ -1549,7 +1538,7 @@ Las tasas de aprendizaje de LoRA suelen ser ~10× más altas que en el fine-tuni
**Pasos de entrenamiento**
-Método 1: usar flags de CLI.
+Método 1: usar flags de la CLI.
1. Instala `accelerate` en tu entorno de `lerobot`.
@@ -1591,30 +1580,30 @@ Flags clave de `accelerate`:
- `--num_processes`: Número de GPUs a usar (normalmente igual al número de GPUs disponibles en la máquina).
- `--mixed_precision=fp16`: Usa precisión mixta fp16 (si tu hardware lo soporta, también puedes usar bf16).
-Ten en cuenta: **bf16 requiere soporte de hardware** y no está disponible en todas las GPU.
+Ten en cuenta: **bf16 requiere compatibilidad de hardware** y no está disponible en todas las GPU.
-| Precisión | Soporte de hardware |
+| Precisión | Compatibilidad de hardware |
|--|--|
| fp16 | Compatible con casi todas las GPU de NVIDIA |
| bf16 | Solo compatible con algunas GPU más recientes (Ampere y posteriores) |
-Si tu GPU no admite bf16, elige fp16 en la configuración de Accelerate o especifica fp16 explícitamente.
+Si tu GPU no es compatible con bf16, elige fp16 en la configuración de Accelerate o especifica fp16 explícitamente.
Método 2: Usa un archivo de configuración de `accelerate` (opcional).
-Si entrenas con varias GPU con frecuencia, puedes guardar la configuración para evitar escribir repetidamente las mismas banderas.
+Si entrenas con múltiples GPU con frecuencia, puedes guardar la configuración para evitar escribir repetidamente las mismas banderas.
-`accelerate config` guarda tu configuración de hardware (número de GPU, precisión mixta, etc.) en un archivo de configuración, de modo que no tengas que volver a introducir esas opciones cuando ejecutes `accelerate launch` más tarde. No cambia la lógica de entrenamiento de LeRobot; solo reduce las entradas repetidas en la CLI.
+`accelerate config` guarda tu configuración de hardware (número de GPU, precisión mixta, etc.) en un archivo de configuración, de modo que no tengas que volver a introducir esas opciones cuando ejecutes `accelerate launch` más tarde. No cambia la lógica de entrenamiento de LeRobot; solo reduce las entradas repetitivas en la CLI.
Si solo usas varias GPU ocasionalmente (o es tu primera vez), omitir esto está perfectamente bien.
-En la configuración interactiva, para el escenario común de “una sola máquina + varias GPU”, las opciones típicas son:
+En la configuración interactiva, para el escenario común de “una sola máquina + múltiples GPU”, las opciones típicas son:
-- Compute environment: This machine
-- Number of machines: 1
-- Number of processes: Number of GPUs you want to use
-- GPU ids to use: press Enter (use all GPUs)
-- Mixed precision: prefer fp16; choose bf16 only if you know your GPU supports it
+- Entorno de cómputo: Esta máquina
+- Número de máquinas: 1
+- Número de procesos: Número de GPU que quieres usar
+- IDs de GPU a usar: pulsa Enter (usar todas las GPU)
+- Precisión mixta: se prefiere fp16; elige bf16 solo si sabes que tu GPU lo admite
```bash
@@ -1640,13 +1629,13 @@ accelerate launch $(which lerobot-train) \
```
-**Cómo el uso de varias GPU afecta a los hiperparámetros (y cómo ajustarlos)**
+**Cómo el uso de múltiples GPU afecta a los hiperparámetros (y cómo ajustarlos)**
LeRobot no ajusta automáticamente la tasa de aprendizaje ni los pasos de entrenamiento en función del número de GPU, para evitar cambiar silenciosamente el comportamiento del entrenamiento. Esto es diferente de algunos otros frameworks de entrenamiento distribuido.
-Si quieres ajustar los hiperparámetros para varias GPU, un enfoque común es:
+Si quieres ajustar los hiperparámetros para múltiples GPU, un enfoque común es:
-- **Pasos**: el tamaño de lote efectivo aumenta (batch_size × num_gpus), por lo que puedes reducir los pasos aproximadamente de forma proporcional a `1 / num_gpus` para mantener un número similar de muestras vistas en total.
+- **Pasos**: el tamaño de lote efectivo aumenta (batch_size × num_gpus), por lo que puedes reducir los pasos aproximadamente de forma proporcional a `1 / num_gpus` para mantener un número total similar de muestras vistas.
```bash
@@ -1683,7 +1672,335 @@ Para configuración avanzada y resolución de problemas, consulta la documentaci
+
+
+(Opcional) Inferencia asíncrona
+
+Cuando la inferencia asíncrona no está habilitada, el flujo de control de LeRobot puede entenderse como **inferencia secuencial / síncrona convencional**: la política primero predice un segmento de acciones, luego ejecuta ese segmento y solo después espera la siguiente predicción.
+
+Para modelos más grandes, esto puede hacer que el robot haga una pausa notable mientras espera el siguiente bloque de acciones.
+
+El objetivo de la inferencia asíncrona es permitir que el robot ejecute el bloque de acciones actual mientras calcula por adelantado el siguiente, reduciendo así el tiempo de inactividad y mejorando la capacidad de respuesta.
+
+La inferencia asíncrona es aplicable a las políticas compatibles con LeRobot, incluidas las **políticas de acciones basadas en bloques** como **ACT, OpenVLA, Pi0 y SmolVLA**.
+
+Dado que la inferencia está desacoplada del control real, la inferencia asíncrona también ayuda a aprovechar máquinas con mayores recursos de cómputo para realizar la inferencia del robot.
+
+Puedes leer más sobre inferencia asíncrona en el [blog de Hugging Face](https://huggingface.co/blog/async-robot-inference)
+
+Primero presentemos algunos conceptos básicos:
+
+- **Cliente**: se conecta al brazo robótico y a las cámaras, recopila datos de observación (como imágenes y poses del robot), envía estas observaciones al servidor y recibe los bloques de acciones devueltos por el servidor y los ejecuta en orden.
+
+- **Servidor**: el dispositivo que proporciona recursos de cómputo. Recibe datos de la cámara y del brazo robótico, realiza la inferencia (es decir, el cómputo) para producir bloques de acciones y los envía de vuelta al cliente. Puede ser el mismo dispositivo conectado al brazo robótico y a las cámaras, otro ordenador en la misma red local o un servidor en la nube alquilado en Internet.
+
+- **Bloque de acciones**: una secuencia de comandos de acción del brazo robótico obtenida mediante la inferencia de la política en el lado del servidor.
+
+Tres escenarios de despliegue para la inferencia asíncrona
+
+1. Despliegue en una sola máquina
+
+El robot, las cámaras, el cliente y el servidor están todos en el mismo dispositivo.
+
+Este es el caso más sencillo: el servidor puede escuchar en 127.0.0.1 y el cliente también puede conectarse a 127.0.0.1:port. El ejemplo de comando en la documentación oficial es para este escenario.
+
+2. Despliegue en LAN
+
+El robot y las cámaras están conectados a un dispositivo ligero, mientras que el servidor de políticas se ejecuta en otra máquina de alto cómputo en la misma red local.
+
+En este caso, el servidor debe escuchar en una dirección accesible por otras máquinas, y el cliente también debe conectarse a la IP de la LAN del servidor, en lugar de 127.0.0.1.
+
+3. Despliegue entre redes / en la nube
+
+El servidor de políticas se ejecuta en un host en la nube accesible públicamente, y el cliente se conecta a él a través de Internet pública.
+
+Este enfoque puede aprovechar la GPU más potente del host en la nube. Cuando las condiciones de red son buenas, el tiempo de ida y vuelta de la red (latencia de red) a veces puede ser relativamente pequeño en comparación con el tiempo de inferencia, pero esto depende de tu entorno de red real.
+
+Nota de seguridad: la canalización de inferencia asíncrona de LeRobot tiene un riesgo relacionado con gRPC sin autenticación + deserialización con pickle. Si hay información o servicios importantes en el servidor, no se recomienda exponer el servicio directamente a Internet en un despliegue público. Un enfoque más seguro es usar VPN o túneles SSH, o al menos restringir las IP de origen permitidas en el grupo de seguridad a la IP pública de tu propio cliente.
+
+### Introducción al despliegue de inferencia asíncrona
+
+#### Paso 1: Configuración del entorno
+
+Primero, usa pip para instalar las dependencias adicionales necesarias para la inferencia asíncrona. Tanto el cliente como el servidor deben tener lerobot instalado junto con las dependencias extra:
+
+```bash
+pip install -e ".[async]"
+```
+
+#### Paso 2: Configuración y comprobaciones de red
+
+1. **Problemas de proxy**
+
+Si tu terminal actual está configurado para usar un proxy y la conexión se comporta de forma anómala, puedes desactivar temporalmente las variables de entorno del proxy:
+
+```bash
+unset http_proxy https_proxy ftp_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY
+```
+
+Nota: el comando anterior solo afecta a la sesión de terminal actual. Si abres otra ventana de terminal, necesitas ejecutarlo de nuevo.
+
+2. **Abrir el puerto en el firewall / grupo de seguridad**
+
+Despliegue en una sola máquina: normalmente se puede omitir.
+
+Despliegue en LAN: necesitas abrir el puerto de escucha en el lado del servidor.
+
+Ejemplo para abrir el puerto de escucha en una configuración de LAN (ejecutar en el lado del servidor):
+
+```bash
+sudo ufw allow 8080/tcp
+```
+
+Despliegue en la nube: necesitas abrir este puerto en el grupo de seguridad del servidor en la nube, y se recomienda restringir las IP de origen tanto como sea posible.
+
+Si estás ejecutando en un servidor en la nube:
+
+Abre el puerto 8080 en el grupo de seguridad de la consola de gestión del servidor, o usa otro puerto que ya esté abierto. Las diferentes plataformas de servicios en la nube manejan esto de manera diferente; consulta la documentación de tu proveedor de nube.
+
+3. **Confirmar la dirección IP**
+
+Este paso se puede omitir para el despliegue en una sola máquina (la dirección IP para una sola máquina siempre es 127.0.0.1).
+
+Si se trata de un despliegue en LAN:
+
+Necesitas confirmar y recordar la dirección IP de la LAN del lado del servidor. Cuando el cliente se conecte, lo que debe rellenarse es la IP de la LAN de la máquina que ejecuta policy_server, no la IP propia del cliente.
+
+Linux / Jetson / Raspberry Pi:
+
+```bash
+hostname -I
+```
+
+Si se muestran varias direcciones, generalmente elige la que corresponde a la interfaz de red de la LAN actual, por ejemplo 192.168.x.x.
+
+También puedes usar:
+
+```bash
+ip addr
+```
+
+para ver el campo inet bajo la interfaz de red actualmente conectada.
+
+Windows:
+
+```shell
+ipconfig
+```
+
+Busca un campo como Dirección IPv4 . . . . . . . . . . . : 192.168.14.140; esa es la dirección IP de la LAN de esa máquina.
+
+macOS:
+
+```bash
+ifconfig
+```
+
+Busca el campo inet correspondiente a la interfaz de red actualmente conectada; esa es la dirección IP de la LAN.
+
+Necesitamos recordar la dirección IP de la LAN del lado del servidor. Usaremos `` para referirnos a ella.
+
+Si se trata de un despliegue en un servidor en la nube:
+
+Busca la IP pública en el panel de control del servidor. Normalmente se llama de una de las siguientes maneras:
+
+Public IPv4
+
+External IP
+
+Public IP address
+
+EIP
+Public IP
+
+Necesitamos recordar la dirección IP pública. Usaremos` `para referirnos a ella.
+
+4. **Prueba de conexión**
+
+Despliegue en una sola máquina: este paso se puede omitir
+
+Despliegue en LAN / nube: se recomienda probar desde el lado del cliente si el puerto del servidor es accesible. Los ejemplos de prueba son los siguientes:
+
+Ejemplo de LAN: ejecutar en el lado del cliente
+
+```bash
+nc -vz 8080
+```
+
+Ejemplo en la nube: ejecutar en el lado del cliente
+
+```bash
+nc -vz 8080
+```
+
+#### Paso 3: Iniciar el servicio
+
+**Escenario A: Despliegue en una sola máquina**
+
+Inicia el servicio local en una terminal:
+
+```bash
+python -m lerobot.async_inference.policy_server \
+--host=127.0.0.1 \
+--port=8080
+```
+
+Después de que se inicie correctamente, debes mantener esta terminal abierta. Necesitarás abrir una nueva terminal para ejecutar otros comandos.
+
+**Escenario B: Despliegue en LAN**
+
+Ejecutar en el lado del servidor:
+
+```bash
+python -m lerobot.async_inference.policy_server \
+--host=0.0.0.0 \
+--port=8080
+```
+
+En este caso, cuando el cliente se conecta, `--server_address` debe ser la dirección IP de la LAN del servidor, es decir, `:8080`.
+
+**Escenario C: Implementación en servidor en la nube**
+
+Ejecutar en el lado del servidor:
+
+```bash
+python -m lerobot.async_inference.policy_server \
+--host=0.0.0.0 \
+--port=8080
+```
+
+En este caso, cuando el cliente se conecta, `--server_address` debe ser la dirección IP pública del servidor, es decir, `:8080`.
+
+#### Paso 4: Elegir parámetros de inferencia
+
+Ejecutar en el lado del cliente:
+
+```bash
+python -m lerobot.async_inference.robot_client \
+--server_address=:8080 \
+--robot.type=so100_follower \
+--robot.port=/dev/tty.usbmodem585A0076841 \
+--robot.id=follower_so100 \
+--robot.cameras="{ laptop: {type: opencv, index_or_path: 0, width: 1920, height: 1080, fps: 30}, phone: {type: opencv, index_or_path: 0, width: 1920, height: 1080, fps: 30}}" \
+--task="dummy" \
+--policy_type=your_policy_type \
+--pretrained_name_or_path=user/model \
+--policy_device=cuda \
+--actions_per_chunk=50 \
+--chunk_size_threshold=0.5 \
+--aggregate_fn_name=weighted_average \
+--debug_visualize_queue_size=True
+```
+
+Explicación de parámetros:
+
+- `--server_address`
+
+Especifica la dirección y el puerto del servidor de políticas. `` debe sustituirse por 127.0.0.1 (máquina local), `` (LAN), o `` (servidor en la nube).
+
+- `--robot.type, --robot.port, --robot.id, --robot.cameras`
+
+Parámetros del dispositivo de hardware. Deben mantenerse coherentes con los parámetros usados durante la recopilación del conjunto de datos.
+
+- `--task`
+
+La descripción de la tarea. Las políticas de visión y lenguaje como SmolVLA pueden determinar el objetivo de la acción basándose en el texto de la tarea.
+
+- `--policy_type`
+
+Sustituye esto por el nombre específico de la política, por ejemplo:
+
+- smolvla
+
+- act
+
+- `--pretrained_name_or_path`
+
+Este valor debe sustituirse por la ruta del modelo en el lado del servidor, o una ruta de modelo en Hugging Face.
+
+- `--policy_device`
+
+Especifica el dispositivo de inferencia utilizado en el lado del servidor.
+
+Puede ser cuda, mps o cpu.
+
+- `--actions_per_chunk=50`
+
+Especifica cuántas acciones se generan en cada inferencia.
+
+Cuanto mayor sea este valor:
+
+Ventaja: el búfer de acciones es más abundante, por lo que es menos probable que se agote
+Desventaja: el horizonte de predicción es más largo, por lo que el error de control puede acumularse de forma más notable
+
+- `--chunk_size_threshold=0.5`
+
+Especifica cuándo solicitar el siguiente bloque de acciones al servidor.
+
+Este es un umbral, normalmente en el rango de 0 a 1.
+
+Se puede entender como: cuando la proporción restante de la cola de acciones actual cae por debajo de este umbral, el cliente enviará por adelantado una nueva observación y solicitará el siguiente bloque de acciones.
+
+Configurar aquí el valor 0.5 significa:
+
+cuando el bloque de acciones actual se ha consumido aproximadamente a la mitad
+
+el cliente comienza a solicitar el siguiente bloque de acciones
+
+Cuanto mayor sea este valor, con más frecuencia se enviarán solicitudes y más receptivo será el sistema, pero también aumentará la carga en el servidor.
+
+Cuanto menor sea este valor, más se acercará el comportamiento a la inferencia síncrona.
+
+- `--aggregate_fn_name=weighted_average`
+
+Especifica el método de agregación para intervalos de acciones superpuestos.
+
+En la inferencia asíncrona, cuando el bloque de acciones antiguo aún no se ha ejecutado por completo, es posible que el nuevo bloque de acciones ya haya llegado.
+
+En ese caso, los dos bloques se superponen en parte del intervalo de tiempo, y se necesita una función de agregación para combinarlos en la acción final ejecutada.
+
+El significado de weighted_average es:
+
+usar un promedio ponderado para fusionar la parte superpuesta.
+
+Esto normalmente hace que el cambio de acciones sea más suave y reduce los cambios bruscos.
+
+- `--debug_visualize_queue_size=True`
+
+Indica si se visualiza el tamaño de la cola de acciones en tiempo de ejecución.
+
+Cuando está activado, te permite ver de forma más directa si la cola toca el fondo con frecuencia, lo que te ayuda a ajustar actions_per_chunk y chunk_size_threshold.
+
+#### Paso 5: Ajustar parámetros según el comportamiento del robot
+
+En la inferencia asíncrona, hay dos parámetros adicionales que necesitan ajuste y que no existen en la inferencia síncrona:
+
+Parámetro Valor inicial sugerido Descripción
+
+actions_per_chunk 50 Cuántas acciones genera la política de una sola vez. Valores típicos: 10–50.
+
+chunk_size_threshold 0.5 Cuando la proporción restante de la cola de acciones es ≤ chunk_size_threshold, el cliente envía una nueva solicitud de bloque de acciones. El rango de valores es [0, 1].
+
+Cuando `--debug_visualize_queue_size=True`, el cambio en el tamaño de la cola de acciones se representará gráficamente en tiempo de ejecución.
+
+Lo que la inferencia asíncrona necesita equilibrar es: la velocidad a la que el servidor genera bloques de acciones debe ser mayor o igual que la velocidad a la que el cliente consume bloques de acciones. De lo contrario, la cola de acciones se vaciará y el robot comenzará a tartamudear de nuevo (esto puede verse como la curva tocando el fondo en la visualización de la cola).
+
+La velocidad a la que el servidor genera bloques de acciones se ve afectada por factores como el tamaño del modelo, el tipo de dispositivo, la VRAM / memoria y la potencia de cálculo de la GPU.
+
+La velocidad a la que el cliente consume bloques de acciones se ve afectada por los fps de ejecución configurados.
+
+Si la cola se vacía con frecuencia, necesitas aumentar actions_per_chunk, aumentar chunk_size_threshold o reducir los fps.
+
+Si la curva de la cola fluctúa con frecuencia pero las acciones restantes en la cola siempre son suficientes, puedes disminuir chunk_size_threshold de forma adecuada.
+
+En general:
+
+el rango empírico de actions_per_chunk es 10–50
+
+el rango empírico de chunk_size_threshold es 0.5–0.7; al ajustar, se recomienda comenzar desde 0.5 e incrementarlo gradualmente
+
+
Si encuentras el siguiente error:
@@ -1725,13 +2042,11 @@ huggingface-cli upload ${HF_USER}/act_so101_test${CKPT} \
outputs/train/act_so101_test/checkpoints/${CKPT}/pretrained_model
```
-
-
## Preguntas frecuentes (FAQ)
- Si estás siguiendo esta documentación/tutorial, por favor haz git clone del repositorio de GitHub recomendado `https://github.com/Seeed-Projects/lerobot.git`. El repositorio recomendado en esta documentación es una versión estable verificada; el repositorio oficial de Lerobot se actualiza continuamente a la última versión, lo que puede causar problemas imprevistos como diferentes versiones de conjuntos de datos, diferentes comandos, etc.
-- Si encuentras el siguiente error al calibrar los ID de los servos:
+- Si encuentras el siguiente error al calibrar los IDs de los servos:
```bash
`Motor ‘gripper’ was not found, Make sure it is connected`
@@ -1766,7 +2081,7 @@ huggingface-cli upload ${HF_USER}/act_so101_test${CKPT} \
ConnectionError: Failed to sync read 'Present_Position' on ids=[1,2,3,4,5,6] after 1 tries. [TxRxResult] There is no status packet!
```
- Debes comprobar si el brazo robótico en el puerto correspondiente está encendido y si los cables de datos de los servos de bus están sueltos o desconectados. Si la luz de un servo no está encendida, significa que el cable del servo anterior está suelto.
+ Necesitas comprobar si el brazo robótico en el puerto correspondiente está encendido y si los cables de datos de los servos de bus están sueltos o desconectados. Si la luz de un servo no está encendida, significa que el cable del servo anterior está suelto.
- Si encuentras el siguiente error al calibrar el brazo robótico:
@@ -1792,29 +2107,29 @@ huggingface-cli upload ${HF_USER}/act_so101_test${CKPT} \
Ten en cuenta que palabras clave como "front" y "side" en el parámetro `--robot.cameras` deben ser estrictamente coherentes con las utilizadas al recopilar el conjunto de datos.
-- Si has reparado o reemplazado partes del brazo robótico, por favor elimina completamente los archivos en `~/.cache/huggingface/lerobot/calibration/robots` o `~/.cache/huggingface/lerobot/calibration/teleoperators` y recalibra el brazo robótico. De lo contrario, pueden aparecer mensajes de error, ya que la información de calibración se almacena en archivos JSON en estos directorios.
+- Si has reparado o reemplazado partes del brazo robótico, por favor elimina completamente los archivos bajo `~/.cache/huggingface/lerobot/calibration/robots` o `~/.cache/huggingface/lerobot/calibration/teleoperators` y recalibra el brazo robótico. De lo contrario, pueden aparecer mensajes de error, ya que la información de calibración se almacena en archivos JSON en estos directorios.
-- Entrenar ACT con 50 conjuntos de datos lleva aproximadamente 6 horas en un portátil con una RTX 3060 (8GB), y alrededor de 2-3 horas en ordenadores con GPU RTX 4090 o A100.
+- Entrenar ACT con 50 conjuntos de datos lleva aproximadamente 6 horas en un portátil con una RTX 3060 (8GB), y alrededor de 2–3 horas en ordenadores con GPUs RTX 4090 o A100.
- Durante la recopilación de datos, asegúrate de que la posición de la cámara, el ángulo y la iluminación ambiental sean estables. Reduce la cantidad de fondo inestable y de peatones capturados por la cámara, ya que cambios excesivos en el entorno de despliegue pueden hacer que el brazo robótico no pueda agarrar correctamente.
-- Para el comando de recopilación de datos, asegúrate de que el parámetro `num-episodes` esté configurado para recopilar suficientes datos. No pauses manualmente a mitad de camino, ya que la media y la varianza de los datos se calculan solo después de que la recopilación de datos se haya completado, y son necesarias para el entrenamiento.
+- Para el comando de recopilación de datos, asegúrate de que el parámetro `num-episodes` esté configurado para recopilar suficientes datos. No pauses manualmente a mitad de camino, ya que la media y la varianza de los datos se calculan solo después de que la recopilación de datos se haya completado, lo cual es necesario para el entrenamiento.
-- Si el programa indica que no puede leer datos de imagen de la cámara USB, asegúrate de que la cámara USB no esté conectada a través de un hub. La cámara USB debe estar conectada directamente al dispositivo para garantizar una alta velocidad de transmisión de imágenes.
+- Si el programa indica que no puede leer datos de imagen desde la cámara USB, asegúrate de que la cámara USB no esté conectada a través de un hub. La cámara USB debe estar conectada directamente al dispositivo para garantizar una alta velocidad de transmisión de imágenes.
-- Si encuentras un bug como `AttributeError: module 'rerun' has no attribute 'scalar'. Did you mean: 'scalars'?`, puedes hacer un downgrade de la versión de rerun para resolver el problema.
+- Si encuentras un bug como `AttributeError: module 'rerun' has no attribute 'scalar'. Did you mean: 'scalars'?`, puedes degradar la versión de rerun para resolver el problema.
```bash
pip3 install rerun-sdk==0.23
```
:::tip
-Si encuentras problemas de software o de dependencias del entorno que no se puedan resolver, además de consultar la sección de Preguntas frecuentes (FAQ) al final de este tutorial, informa del problema de inmediato en la [plataforma LeRobot](https://github.com/huggingface/lerobot) o en el [canal de Discord de LeRobot](https://discord.gg/8TnwDdjFGU).
+Si encuentras problemas de software o de dependencias del entorno que no se puedan resolver, además de revisar la sección de Preguntas Frecuentes al final de este tutorial, informa el problema de inmediato en la [plataforma LeRobot](https://github.com/huggingface/lerobot) o en el [canal de Discord de LeRobot](https://discord.gg/8TnwDdjFGU).
:::
-## Citas
+## Cita
-[Documento en chino](https://wiki.seeedstudio.com/cn/lerobot_so100m_new/)
+[Chinese Document](https://wiki.seeedstudio.com/cn/lerobot_so100m_new/)
Proyecto TheRobotStudio: [SO-ARM10x](https://github.com/TheRobotStudio/SO-ARM100)
diff --git a/sites/ja/docs/Robotics/Robot_Kits/Lerobot/ja_Lerobot_SO100Arm_New.md b/sites/ja/docs/Robotics/Robot_Kits/Lerobot/ja_Lerobot_SO100Arm_New.md
index e2067f590e9f6..1092c699570ee 100644
--- a/sites/ja/docs/Robotics/Robot_Kits/Lerobot/ja_Lerobot_SO100Arm_New.md
+++ b/sites/ja/docs/Robotics/Robot_Kits/Lerobot/ja_Lerobot_SO100Arm_New.md
@@ -1,5 +1,5 @@
---
-description: このWikiでは、SO ARM100 の組み立てとデバッグのチュートリアルを提供し、最新バージョンの Lerobot フレームワーク内でのデータ収集と学習を実現します。
+description: このWikiでは、SO ARM100の組み立てとデバッグのチュートリアルを提供し、最新バージョンのLerobotフレームワーク内でのデータ収集とトレーニングを実現します。
title: Lerobot における SoArm
keywords:
- Lerobot
@@ -10,25 +10,25 @@ image: https://files.seeedstudio.com/wiki/robotics/projects/lerobot/Arm_kit.webp
slug: /lerobot_so100m_new
sku: 114993666,114993667,114993668,101090144
last_update:
- date: 3/2/2026
+ date: 3/11/2026
author: ZhangJiaQuan
translation:
skip:
- zh-CN
-createdAt: '2025-09-12'
-updatedAt: '2026-03-05'
+createdAt: '2025-06-05'
+updatedAt: '2026-03-03'
url: https://wiki.seeedstudio.com/ja/lerobot_so100m_new/
---
-# SO-ARM100 および SO-ARM101 ロボットアームと LeRobot の入門
+# LeRobot を使った SO-ARM100 および SO-ARM101 ロボットアーム入門
:::tip
-このチュートリアルのメンテナンスは、最新バージョンの [lerobot](https://huggingface.co/docs/lerobot/index) に更新されています。以前のバージョンのチュートリアルを参照したい場合は、[here](https://wiki.seeedstudio.com/ja/lerobot_so100m/) をクリックしてください。
+このチュートリアルのメンテナンスは、最新バージョンの[lerobot](https://huggingface.co/docs/lerobot/index)に更新されています。以前のバージョンのチュートリアルを参照したい場合は、[こちら](https://wiki.seeedstudio.com/ja/lerobot_so100m/)をクリックしてください。
:::
## はじめに
-[SO-10xARM](https://github.com/TheRobotStudio/SO-ARM100) は、[TheRobotStudio](https://www.therobotstudio.com/) によって立ち上げられた、完全オープンソースのロボットアームプロジェクトです。フォロワーアームとリーダーロボットアームを含み、詳細な 3D プリント用ファイルと操作ガイドも提供しています。[LeRobot](https://github.com/huggingface/lerobot/tree/main) は、PyTorch 上で実世界ロボティクス向けのモデル、データセット、ツールを提供することに注力しています。その目的は、ロボティクスの参入障壁を下げ、誰もがデータセットや事前学習済みモデルを共有することで貢献し、恩恵を受けられるようにすることです。LeRobot は、模倣学習を中心に、実世界で検証された最先端の手法を統合しています。人間によるデモンストレーションを含むデータセット、事前学習済みモデル群、シミュレーション環境を備えており、ユーザーはロボットの組み立てを行わなくてもすぐに開始できます。今後数週間で、現在入手可能な最もコストパフォーマンスに優れたロボットに対して、実世界ロボティクスのサポートをさらに拡充していく予定です。
+[SO-10xARM](https://github.com/TheRobotStudio/SO-ARM100) は、[TheRobotStudio](https://www.therobotstudio.com/) によって立ち上げられた完全オープンソースのロボットアームプロジェクトです。フォロワーアームとリーダーロボットアームが含まれており、詳細な3Dプリント用ファイルと操作ガイドも提供されています。[LeRobot](https://github.com/huggingface/lerobot/tree/main) は、PyTorch 上で実世界ロボティクス向けのモデル、データセット、ツールを提供することに注力しています。その目的は、ロボティクスの参入障壁を下げ、誰もがデータセットや事前学習済みモデルを共有することで貢献し、恩恵を受けられるようにすることです。LeRobot は、模倣学習を中心に、実世界で検証された最先端の手法を統合しています。人間が収集したデモンストレーションを含むデータセット、事前学習済みモデル群、およびシミュレーション環境を提供しており、ユーザーはロボットを組み立てることなくすぐに開始できます。今後数週間で、現在入手可能な中で最も低コストかつ高性能なロボットに対する実世界ロボティクスのサポートをさらに拡充する予定です。
@@ -36,8 +36,8 @@ url: https://wiki.seeedstudio.com/ja/lerobot_so100m_new/
## プロジェクト概要
-SO-ARM10x と reComputer Jetson AI インテリジェントロボットキットは、高精度なロボットアーム制御と強力な AI コンピューティングプラットフォームをシームレスに統合し、包括的なロボット開発ソリューションを提供します。このキットは Jetson Orin または AGX Orin プラットフォームをベースに、SO-ARM10x ロボットアームと LeRobot AI フレームワークを組み合わせることで、教育、研究、産業オートメーションなど複数のシナリオに適用可能なインテリジェントロボットシステムをユーザーに提供します。
-このWikiでは、SO ARM10x の組み立てとデバッグのチュートリアルを提供し、Lerobot フレームワーク内でのデータ収集と学習を実現します。
+SO-ARM10x と reComputer Jetson AI インテリジェントロボットキットは、高精度なロボットアーム制御と強力なAIコンピューティングプラットフォームをシームレスに組み合わせ、包括的なロボット開発ソリューションを提供します。このキットは Jetson Orin または AGX Orin プラットフォームをベースに、SO-ARM10x ロボットアームと LeRobot AI フレームワークを組み合わせることで、教育、研究、産業オートメーションなど複数のシナリオに適用可能なインテリジェントロボットシステムをユーザーに提供します。
+このWikiでは、SO ARM10x の組み立てとデバッグのチュートリアルを提供し、Lerobot フレームワーク内でのデータ収集とトレーニングを実現します。
-
Leader Arm
-
12x ST-3215- C001 (7.4V) motors with 1:345 gear ratio for all joints
-
12x ST-3215-C018/ST-3215-C047 (12V) motors with 1:345 gear ratio for all joints
- 1x ST-3215- C001 (7.4V) motor with 1:345 gear ratio for joint 2 only
- 2x ST-3215-C044 (7.4V) motors with 1:191 gear ratio for joints 1 and 3
- 3x ST-3215-C046 (7.4V) motors with 1:147 gear ratio for joints 4, 5, and gripper (joint 6)
+ ジョイント2専用の 1:345 のギア比を持つ 1x ST-3215- C001 (7.4V) モーター
+ ジョイント1および3用の 1:191 のギア比を持つ 2x ST-3215-C044 (7.4V) モーター
+ ジョイント4、5、およびグリッパー(ジョイント6)用の 1:147 のギア比を持つ 3x ST-3215-C046 (7.4V) モーター
-
Follower Arm
-
Same as SO-ARM100
+
フォロワーアーム
+
SO-ARM100 と同じ
電源
@@ -111,13 +111,13 @@ Seeed Studio はハードウェア自体の品質にのみ責任を負います
5.5 mm × 2.1 mm DC 12 V 2 A
5.5 mm × 2.1 mm DC 5 V 4 A
- 5.5 mm × 2.1 mm DC 12 V 2 A (Follower Arm)
- 5.5 mm × 2.1 mm DC 5 V 4 A (Leader Arm)
+ 5.5 mm × 2.1 mm DC 12 V 2 A(フォロワーアーム)
+ 5.5 mm × 2.1 mm DC 5 V 4 A(リーダーアーム)