Robótica y Visión por Computador en Python Sin Licencias Pagadas de MATLAB
Por qué los Ingenieros de Robótica se Quedaron con MATLAB Durante Tanto Tiempo
Si estudiaste o trabajaste en robótica hace cinco o diez años, probablemente recuerdes el Robotics Toolbox para MATLAB. Peter Corke lo creó a finales de los años 90. Durante mucho tiempo, esta biblioteca permaneció como el estándar para la academia y los laboratorios de ingeniería. ¿Necesitabas construir una matriz de transformación espacial, graficar una trayectoria de un manipulador o calcular cinemática inversa? Inmediatamente abrías MATLAB.
El principal inconveniente es inmediatamente evidente: los costos de licencia. Integrar código MATLAB en pipelines de producción modernos también presenta desafíos significativos. Hace varios años, el autor reescribió completamente las herramientas en Python, y en 2023 lanzó la tercera edición del libro Robotics, Vision & Control junto con el repositorio abierto RVC3-python.
Qué Incluye
El repositorio contiene ejemplos y un wrapper unificado para cuatro bibliotecas especializadas:
- Robotics Toolbox maneja cinemática, dinámica y trayectorias de manipuladores.
- Machine Vision Toolbox aborda el procesamiento de imágenes, detección de puntos característicos y visión estéreo.
- Spatial Maths Toolbox se encarga de la matemática de transformaciones 3D, cuaterniones y grupos de Lie SE(3)/SO(3).
- BDSim ayuda a simular sistemas dinámicos y diagramas de bloques.
Todo el código fuente se distribuye bajo la licencia MIT. Para eliminar la gestión manual de dependencias, los creadores agruparon todo en un único paquete.
Inicio Rápido via Consola Interactiva
Los desarrolladores crearon una utilidad CLI conveniente rvctool. Inicia una sesión IPython con todos los módulos necesarios, funciones matemáticas y modelos de hardware popular preimportados.
La instalación toma un comando:
pip install rvc3python
Luego lanza el entorno de trabajo:
rvctool
La consola toma referencias de la experiencia de sintaxis de MATLAB. Si omites el punto y coma al final de una línea, el resultado de la expresión se imprime inmediatamente en la terminal. Al mismo tiempo, tienes acceso completo a Python regular con todas sus ventajas.
Cinematica de Manipuladores en Pocas Lineas
Definamos un modelo del robot industrial Franka Emika Panda, calculemos la pose de su brida y resolvamos el problema de cinemática inversa.
panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))
El método fkine calcula la cinemática directa y devuelve una matriz de transformación rígida SE3. El método ikine_LM encuentra los ángulos de las articulaciones usando el algoritmo de Levenberg-Marquardt.
Llamar al método panda.teach(panda.qz) abre una ventana gráfica donde puedes mover los deslizadores de las articulaciones y observar cómo cambian las poses del robot.

Procesamiento de Imagenes y Vision por Computador
Para tareas básicas de visión por computador, no es necesario conectar marcos externos voluminosos. Por ejemplo, el emparejamiento de puntos clave SIFT en dos cuadros se ve así:
sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")
Internamente utiliza NumPy y SciPy, ampliamente probados. Si necesitas ejemplos de aprendizaje profundo del Capítulo 11 del libro (como la segmentación con redes neuronales), PyTorch se importa con una bandera separada:
pip install rvc3python[pytorch]
Simulacion de Sistemas de Control
El paquete bdsim merece una mención especial. Es un intento de crear una alternativa a Simulink sin el entorno de desarrollo voluminoso.
Los diagramas de bloques se crean directamente en código Python o se ensamblan visualmente a través del editor gráfico bdedit. Los datos se guardan en archivos JSON regulares con la extensión .bd. El repositorio ya incluye 25 modelos tutoriales listos para usar del libro, que puedes ejecutar directamente desde rvctool.
Aspectos a Tener en Cuenta Antes de Ejecutar
Antes de comenzar, hay tres puntos que vale la pena señalar:
- Se requiere Python 3.8 o superior debido al uso activo de anotaciones de tipo.
- Los chips Apple Silicon (M1/M2/M3) pueden tener problemas de renderizado con Open3D. La wiki del proyecto tiene una página separada con soluciones alternativas.
- El código funciona en Jupyter Notebook y Google Colab, pero la animación 3D compleja puede tener retrasos debido a las specifics de la transmisión de cuadros a la interfaz web.
A Quién le Sera Util Este Repositorio
Si enseñas robótica, estás escribiendo una tesis, investigando algoritmos de navegación, o quieres probar rápidamente una hipótesis sin configurar entornos pesados como ROS 2, RVC3-python te ahorrará mucho tiempo. El proyecto elimina la necesidad de escribir wrappers personalizados para matrices de transformación y proporciona una base lista para usar en el prototipado.
Proyectos relacionados