¿Es ROS un programa útil para aprender sobre robótica? ¿Merece la pena que otros softwares robóticos aprender?

ROS vale totalmente la pena aprender si estás trabajando en robótica. No sé mucho sobre otros softwares / middlewares / plataformas de robótica, pero por lo que vi, ROS está creciendo mucho y es probable que crezca más en el futuro. Está intentando crear algunos “estándares” de robótica , por lo que no necesita reinventar la rueda cada vez que necesite crear un nuevo software de robot.

  • ROS es general . Puedes programar un dron, un brazo robótico, una base móvil, un submarino, bueno, lo que quieras. Hay paquetes para todos, para hacerte la vida más fácil. Así que aprender ROS ahora para su proyecto específico no es un problema. Los conocimientos que obtenga serán útiles para usted en el futuro, incluso si programa un robot completamente diferente.
  • ROS es muy ligero . Si solo necesita la funcionalidad básica, no necesitará muchos recursos.
  • Puedes manejar proyectos más grandes con múltiples robots .
  • ROS tiene grandes herramientas de simulación . A veces no puede trabajar en su robot físico, o simplemente quiere aprender ROS en un robot existente que no quiere comprar. Bueno, puede visualizar fácilmente su robot con Rviz, integrado directamente en ROS, y si necesita un software de simulación completo, Gazebo es para usted. Puede manejar restricciones físicas y permitir que su robot se mueva en un entorno real. Por ejemplo, puede mapear una habitación con un dron, ¡solo con Gazebo! La simulación estará muy cerca de la realidad.
  • Hay paquetes de ROS para cada capa de su aplicación . Para controlar su hardware, use ros_control. Para planificar el movimiento y evitar colisiones, use Moveit !. Para usar ROS en una aplicación de Android, use ros_java. Acabo de listar 3 paquetes, hay cientos más (¿miles?)
  • Muchos fabricantes proporcionan paquetes de ROS con su producto . Por ejemplo, los servomotores Dynamixel vienen con una pila de ROS, por lo que puede “conectar” directamente el servo y con 2–3 pasos de configuración, está listo para controlarlo sin tener que escribir una línea de código. Lo mismo para muchas pinzas y herramientas de efectos finales (para brazos robóticos), muchas de ellas son compatibles con ROS, lo que realmente significa: plug and play
  • ROS es de código abierto, con una licencia permisiva (BSD) . Este punto cambia muchas cosas. Puede usar ROS en su sistema y hacerlo propietario si lo desea, o usar software propietario junto con ROS, sin tener que liberar todo (pero hey, el código abierto es genial, ¡no lo olvide!)
  • ROS tiene una comunidad creciente y activa . Todos los paquetes ros (al menos para la base del núcleo) están disponibles en github. Desde allí puede ver lo que está sucediendo, directamente con los desarrolladores / mantenedores, ¡también puede contribuir si lo desea! Hay un sitio web de preguntas y respuestas para hacer las preguntas que tiene. También hay una lista de correo ROS, muy útil para ponerse al día con los últimos desarrollos. Y eso no es todo, cada año, los contribuidores de ROS y los usuarios se reúnen en ROSCON, puede encontrar todos los videos de las presentaciones en línea. Todos esos puntos para mostrarle que con ROS, es fácil saber qué está pasando, a dónde va, y puede solucionar fácilmente los problemas que tenga haciendo preguntas o contribuyendo.
  • Puede encontrar una gran cantidad de documentación en línea , directamente desde la wiki o en los paquetes de github.

Bueno, después de todos esos puntos, ¡no sé si algo vale más que ROS!


Si aún no estás convencido, aquí está mi experiencia personal con ROS:

Actualmente estoy co-fundando una startup de robótica, estamos desarrollando un brazo robótico industrial de 6 ejes , hecho principalmente para fabricantes y educadores. Personalmente he usado ROS en el robot, me permitió:

  • Claramente y fácilmente separar diferentes partes lógicas . ¿Tomar datos de un sensor, publicar los datos, hacer que otra parte del programa se suscriba a esos datos, analizarlos y hacer una llamada de cliente / servidor a otro programa? Fácil con ROS, una vez que entiendas lo básico
  • Utilice ROS en una placa Raspberry Pi 3 . Sí, puede ejecutar un sistema ROS completo en una placa RPI. Y está funcionando muy bien. De esta manera, podemos tener una computadora completa directamente dentro del robot, con comunicación I2C o Spi, pines GPIO, y usar Wi-Fi o Ethernet para comunicarnos con los dispositivos del usuario.
  • Utilice la solución de planificación de movimiento integrada en ROS . Estoy hablando de Moveit !, que toma una descripción del robot (formato URDF), usa bibliotecas de planificación de movimientos para calcular la cinemática inversa, y planifica una trayectoria completa mientras evita obstáculos
  • Obtenga respuestas rápidamente . Tuve un problema difícil hace un mes. Como ROS es principalmente de código abierto, pude encontrar ayuda rápida en github, de la comunidad ROS muy activa y eficiente.
  • Conecte una aplicación web a mi sistema ROS , fácilmente usando un paquete ROS, rosbridge
  • Y muchas otras cosas , como una interfaz agradable para usar un Joystick (joystick) para obtener datos para controlar el robot, etc.

Si desea saber más sobre nuestro robot impulsado por ROS, visite nuestro sitio web y no dude en hacer cualquier pregunta. Los esfuerzos detrás de ROS nos hicieron querer participar y, por lo tanto, abriremos el código ROS que alimenta a Niryo One (¡otro buen punto para ROS!) Cuando comenzaremos a vender el producto (en septiembre, pero antes de eso lanzaremos un Kickstarter campaña en marzo).

Bueno, espero que mi respuesta sea útil para usted, tengo algunas cosas que decir, porque ROS es realmente genial para la robótica.