Lo que lograrás

Al final de esta unidad tendrás un entorno virtual de Python con el SDK de OpenArm instalado, y ejecutar un script de prueba de 5 líneas devolverá True de arm.ping(). Esa confirmación significa que tu código de Python tiene un canal de comunicación activo con el brazo, que es la base sobre la que se construye todo en las Unidades 3–6.

La documentación completa de instalación y configuración del SDK está en hardware/openarm/software. Esta unidad enmarca ese proceso con el contexto que necesitas y cubre los modos de falla más comunes.

Instala el SDK

Trabaja a través de la guía de configuración del software para la instalación completa del SDK. La versión corta:

# Create an isolated environment for this path python3 -m venv ~/openarm-env # Install the SDK and its dependencies pip install openarm-sdk lerobot torch torchvision

La instalación toma de 5 a 15 minutos dependiendo de tu conexión a internet. Los torch y lerobot paquetes son grandes, pero los necesitarás en las Unidades 4 y 5, así que instálalos ahora.

Prueba Rápida de Conexión en Python

Con ROS 2 en funcionamiento (de la Unidad 1) y tu entorno virtual activado, ejecuta esta prueba. Es la forma más rápida de confirmar que tu pila completa está funcionando de extremo a extremo:

# Make sure ROS 2 is running first (from a separate terminal) # source ~/openarm_ws/install/setup.bash && ros2 launch openarm_bringup real.launch.py desde openarm importar OpenArm # connects via ROS 2 action server print(arm.ping()) # should print: True print(arm.get_joints()) # should print: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] arm.close()

Y arm.ping() devuelve True y arm.get_joints() devuelve los ángulos de las juntas actuales, has terminado. Pasa a la sección de solución de problemas solo si ves errores.

Solución de problemas: Los 3 errores de conexión más comunes

Error 1: ConnectionRefusedError o tiempo de espera en OpenArm()

ROS 2 no está en ejecución o el servidor de acciones aún no ha comenzado. Verifica que ros2 node list muestra /openarm_controller. Si no, vuelve a tu terminal de ROS 2 y confirma que el lanzamiento se completó sin errores. Una causa subyacente común: olvidaste configurar tu espacio de trabajo antes de lanzar — consulta la Unidad 1, paso crítico 2.

Error 2: can0: Network is down en la terminal de ROS 2

La interfaz SocketCAN se desconectó. Esto sucede si desconectaste y volviste a conectar el adaptador USB-CAN sin volver a ejecutar el ip link set comando. Ejecuta sudo ip link set can0 up type can bitrate 1000000, luego reinicia el lanzamiento de ROS 2. Agrega este comando a un script de inicio para que se ejecute automáticamente al arrancar: sudo nano /etc/network/interfaces.d/can0.

Error 3: arm.get_joints() devuelve todos ceros incluso cuando el brazo no está en posición de inicio

Esto no es un error — significa que el brazo este está informando su estado de juntas, pero la calibración puede no estar completa. Si tu brazo está físicamente en la posición cero, los ceros son correctos. Si tu brazo está en un ángulo diferente pero aún reportando ceros, vuelve a ejecutar la calibración desde la interfaz web (Unidad 1, paso crítico 4). Los codificadores de juntas necesitan la secuencia de inicio para establecer la posición absoluta.

Unidad 2 Completa Cuando...

arm.ping() devuelve True en tu terminal de Python. El script de prueba se ejecuta sin errores de principio a fin. Puedes ver los valores de los ángulos de las juntas cambiar en tiempo real cuando mueves físicamente el brazo mientras arm.get_joints() se consulta en un bucle. Estás listo para la Unidad 3.