La robótica de código abierto es una rama de la robótica en la que los robots se desarrollan con hardware de código abierto y software libre y de código abierto , compartiendo públicamente planos , esquemas y código fuente . Por lo tanto, está estrechamente relacionada con el movimiento de diseño abierto , el movimiento de los creadores [1] y la ciencia abierta .
La robótica de código abierto implica que la información sobre el hardware se puede discernir fácilmente, de modo que otros puedan reconstruirlo fácilmente. A su vez, esto requiere que el diseño utilice solo subcomponentes y herramientas estándar fácilmente disponibles, y que el proceso de construcción se documente en detalle, incluida una lista de materiales e instrucciones detalladas ('estilo Ikea') de construcción y prueba paso a paso. (Un archivo CAD por sí solo no es suficiente, ya que no muestra los pasos para realizar o probar la construcción). Estos requisitos son estándar para el hardware de código abierto en general, y están formalizados por varias licencias y certificaciones, especialmente las definidas por las revistas revisadas por pares HardwareX y Journal of Open Hardware .
Los requisitos de licencia para el software son los mismos que para cualquier software de código abierto . Pero además, para que los componentes de software sean de uso práctico en sistemas robóticos reales, deben ser compatibles con otro software, generalmente según lo definido por algún estándar de la comunidad de middleware de robótica .
Las solicitudes presentadas hasta la fecha incluyen:
La mayoría de las definiciones de hardware de código abierto permiten el uso de subcomponentes no abiertos en el diseño modular , siempre que estén fácilmente disponibles. Sin embargo, muchos diseños intentan llevar la apertura a la mayor cantidad posible de subcomponentes, con el objetivo de alcanzar finalmente diseños completamente abiertos.
Los vehículos de conducción manual de hardware abierto y sus subcomponentes, como los de Open Source Ecology , se utilizan a menudo como puntos de partida y se amplían con sistemas de automatización.
Los subcomponentes abiertos pueden incluir hardware informático de código abierto como subcomponentes, como Arduino y RISC-V , así como motores y controladores de código abierto como el controlador de motor de código abierto y ODrive.
Los robots de código abierto a menudo se utilizan junto con el middleware robótico de código abierto Robot Operating System y varios simuladores de código abierto como Gazebo , que se ejecutan en el sistema operativo Linux de código abierto, por lo que están diseñados para interactuar con él.
El middleware de robótica es un software que vincula varios componentes de software. En robótica, esto significa específicamente sistemas de comunicación en tiempo real con protocolos de transmisión de mensajes estandarizados. El middleware de código abierto predominante es ROS , el sistema operativo de robots. Otras alternativas incluyen YARP, utilizado en iCub , URBI y Orca .
La mayoría de los sensores y actuadores de robots requieren controladores de software. Existe poca estandarización del software de código abierto en este nivel, porque cada dispositivo de hardware es diferente. Crear controladores abiertos para hardware cerrado es difícil, ya que requiere tanto programación de bajo nivel como ingeniería inversa .
Los simuladores de robótica de código abierto incluyen Gazebo , MuJoCo y Webots . Los motores de juegos 3D de código abierto como Godot también se utilizan a veces como simuladores, cuando están equipados con interfaces de middleware adecuadas. [ cita requerida ]
A nivel de IA , muchos algoritmos estándar tienen implementaciones de software de código abierto, principalmente en ROS . Los componentes principales incluyen:
Los primeros signos de la creciente popularidad de la construcción de robots por cuenta propia se encontraron en la comunidad DIY . Lo que comenzó con pequeñas competiciones de vehículos operados a distancia (por ejemplo, Robot combat ), pronto evolucionó hacia la construcción de robots autónomos de telepresencia como Sparky y luego robots verdaderos (capaces de tomar decisiones por sí mismos) como el Open Automaton Project. Varias empresas comerciales también producen ahora kits para fabricar robots simples.
La comunidad ha adoptado licencias de hardware de código abierto , certificaciones y publicaciones revisadas por pares que comprueban que el código fuente se ha puesto a disposición de forma correcta y permanente según las definiciones de la comunidad, y que validan que esto se ha hecho. Estos procesos han adquirido una importancia fundamental debido a que muchos proyectos históricos afirman ser de código abierto pero luego se han retractado de esa promesa debido a la comercialización u otras presiones.
Al igual que con otras formas de hardware de código abierto , la comunidad continúa debatiendo criterios precisos para la "facilidad de construcción". Un estándar común es que los diseños deberían ser construibles por un estudiante universitario técnico, en unos pocos días, utilizando herramientas típicas de fablab , pero las definiciones de todos estos subtérminos también pueden ser debatidas.
En comparación con otras formas de hardware de código abierto , la robótica de código abierto generalmente incluye un gran componente de software, por lo que involucra tanto a ingenieros de software como de hardware. Los conceptos de código abierto están más establecidos en el software de código abierto que en el hardware, por lo que la robótica es un campo en el que esos conceptos se pueden compartir y transferir del software al hardware.
Si bien la comunidad de robótica de código abierto es multifacética y cuenta con una amplia gama de antecedentes, una subcomunidad considerable utiliza el middleware ROS y se reúne anualmente en la conferencia ROSCon [18] para discutir el desarrollo de ROS en sí y los componentes de automatización creados sobre él.