El brazo robótico RX Robo Rider es una implementación personalizada del SO-100, con un elegante esquema de colores negro y dorado. Este proyecto documenta la configuración, montaje y operación del brazo robótico, con planes para futuras integraciones como cámaras y entrenamiento para detectar objetos a agarrar.
- RX Robo Rider Arm
Para este proyecto, seguí la guía oficial de SO-ARM100. Este repositorio contiene la lista completa de materiales, enlaces para adquirir las piezas e instrucciones para imprimir en 3D los componentes necesarios.
Las piezas se imprimieron usando una impresora Creality Ender-3 V3 KE, y los archivos 3MF se encuentran en la carpeta STL
.
En tu computadora:
Copia y pega en tu terminal: source ~/.bashrc
o para Mac: source ~/.bash_profile
o source ~/.zshrc
si estás usando zshell
conda create -y -n lerobot python=3.10
Luego activa tu entorno conda (¡haz esto cada vez que abras una terminal para usar lerobot!):
conda activate lerobot
git clone https://github.com/huggingface/lerobot.git ~/lerobot
Cuando uses miniconda
, instala ffmpeg
en tu entorno:
conda install ffmpeg -c conda-forge
cd ~/lerobot && pip install -e ".[feetech]"
He proporcionado scripts de configuración para diferentes sistemas operativos en la carpeta setup
:
configure_motor.sh
- Para Linuxconfigure_motor_mac.sh
- Para macOSconfigure_motor.ps1
- Para Windows
Para encontrar el puerto de cada adaptador de servicio bus, ejecuta el script de utilidad:
python lerobot/scripts/find_motors_bus_port.py
Una vez que tengas tus puertos, usa los scripts proporcionados en la carpeta setup
para configurar los IDs de tus motores. Por ejemplo, en macOS:
./setup/configure_motor_mac.sh
Asegúrate de actualizar el puerto y el ID en el script según sea necesario para cada motor.
Sigue las instrucciones detalladas de montaje disponibles en la guía oficial de LeRobot. Los pasos básicos incluyen:
- Limpieza de todas las piezas impresas en 3D
- Montaje de la base
- Montaje del brazo superior
- Montaje del antebrazo
- Montaje de la muñeca
- Configuración del seguidor (follower)
- Configuración del líder (leader)
Para calibrar tu brazo robótico RX Robo Rider:
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--robot.cameras='{}' \
--control.type=calibrate \
--control.arms='["main_follower"]'
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--robot.cameras='{}' \
--control.type=calibrate \
--control.arms='["main_leader"]'
Para este proyecto, utilicé Phospho para mover el robot con el teclado, lo que proporciona una interfaz intuitiva para controlar el brazo robótico.
También puedes usar la teleoperación estándar de LeRobot:
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--robot.cameras='{}' \
--control.type=teleoperate
Para grabar un conjunto de datos:
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--control.type=record \
--control.fps=30 \
--control.single_task="Grasp an object and place it in the designated area." \
--control.repo_id=${HF_USER}/rx_robo_rider_test \
--control.tags='["rx_robo_rider","robotic_arm"]' \
--control.warmup_time_s=5 \
--control.episode_time_s=30 \
--control.reset_time_s=30 \
--control.num_episodes=2 \
--control.push_to_hub=true
Para visualizar el conjunto de datos en línea:
echo ${HF_USER}/rx_robo_rider_test
Visita https://huggingface.co/spaces/lerobot/visualize_dataset e introduce el ID del repositorio.
Para reproducir un episodio grabado:
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--control.type=replay \
--control.fps=30 \
--control.repo_id=${HF_USER}/rx_robo_rider_test \
--control.episode=0
Para entrenar una política para controlar tu robot:
python lerobot/scripts/train.py \
--dataset.repo_id=${HF_USER}/rx_robo_rider_test \
--policy.type=act \
--output_dir=outputs/train/act_rx_robo_rider_test \
--job_name=act_rx_robo_rider_test \
--policy.device=cuda \
--wandb.enable=true
Para evaluar tu política entrenada:
python lerobot/scripts/control_robot.py \
--robot.type=so100 \
--control.type=record \
--control.fps=30 \
--control.single_task="Grasp an object and place it in the designated area." \
--control.repo_id=${HF_USER}/eval_act_rx_robo_rider_test \
--control.tags='["rx_robo_rider","evaluation"]' \
--control.warmup_time_s=5 \
--control.episode_time_s=30 \
--control.reset_time_s=30 \
--control.num_episodes=10 \
--control.push_to_hub=true \
--control.policy.path=outputs/train/act_rx_robo_rider_test/checkpoints/last/pretrained_model
Este proyecto es una implementación inicial del brazo robótico RX Robo Rider. Próximas actualizaciones incluirán:
- Integración de cámaras para visión robótica
- Entrenamiento para detección de objetos a agarrar
- Mejoras en la interfaz de usuario
- Optimización del rendimiento
Para más información sobre el uso de LeRobot, consulta la documentación oficial.