¿Qué buenas plataformas de software de robótica / sistemas operativos están disponibles? [cerrado]


19

Mi compañía pronto comenzará un nuevo proyecto de robótica, y todavía estamos tratando de decidir si debemos diseñar y codificar una plataforma de software de robótica desde cero, o si hay alguna buena existente.

Sería muy útil si hubiera una plataforma de software que se usara comúnmente entre académicos e industriales para que nuestro sistema robótico fuera generalmente compatible con otros, y para que las personas ya estuvieran familiarizadas con él.

Nos gustaría que la plataforma de software pueda:

  • Integre fácilmente nuevos componentes de hardware robótico.
  • Ya contiene una amplia gama de herramientas útiles de visualización y procesamiento de datos.
  • Hacer un uso eficiente del hardware informático

55
¿No es esta una pregunta de la encuesta que es subjetiva? Lo cual está en contra del espíritu de StackExchange. blog.stackoverflow.com/2010/09/good-subjective-bad-subjective
Chris Mansley

2
Pero podemos crear la calidad de este StackExchange. Deberíamos establecer un precedente de preguntas objetivas de alta calidad que puedan ser respondidas y aprendidas.
Chris Mansley

2
Estoy de acuerdo con usted, pero 1) Esta fue la pregunta más votada en la definición, y 2) una pequeña cantidad de esas preguntas no perjudica el sitio (ver la electrónica, por ejemplo). 3) Tales preguntas producen respuestas que son realmente útiles para muchos usuarios.
Rocketmagnet

44
Si vamos a dejar que esto permanezca, entonces al menos debería ser wiki comunitario, idealmente con una única respuesta wiki comunitaria con todas las mejores descripciones. Esto sería mejor que muchas respuestas, todas describiendo diferentes opciones y / o proporcionando diferentes descripciones / opiniones de las mismas opciones.
Mark Booth

55
Creo que las preguntas de la encuesta son realmente geniales, porque pueden ahorrar mucho tiempo para que alguien descubra dónde buscar. Buscar en Google no encontrará incluso todas las opciones populares en muchos casos. Creo que convertirlo en una respuesta de Community Wiki es un buen resultado.
Jon Watte

Respuestas:


20

ROS se está convirtiendo rápidamente en el nuevo estándar para la robótica industrial y de investigación. La mayoría de los grupos de investigación que conozco están adoptando ROS por su trabajo y luego empujando sus resultados nuevamente a la luz pública para que todos los usen y mejoren. Willow Garage está desarrollando un conjunto de plataformas de hardware y software que se centran en torno a ROS en su núcleo. ROS es un buen lugar para comenzar su búsqueda.


Nota: aunque ROS puede funcionar en la mayoría de los sistemas operativos, está más ampliamente probado para funcionar en la distribución Ubuntu de Linux.
giogadi

1
Además, creo que la página de introducción de ROS hace un trabajo fantástico al cubrir la premisa central y los ideales de la plataforma ROS. Desde la perspectiva del desarrollador, la plataforma ROS se puede utilizar como un contenedor muy "delgado" alrededor de las bibliotecas existentes (como los controladores), para obtener rápidamente acceso al ecosistema ROS más grande.
mjcarroll

5

El Robot Construction Kit es una alternativa a ROS. Se orienta hacia la ingeniería basada en modelos y el diseño / gestión de sistemas complejos. También se dirige hacia "no ser muy dependiente de Rock". La mayoría de los algoritmos / controladores en Rock son independientes de la capa de componentes. Vea también esta página para un resumen rápido de las diferencias entre Rock y ROS.

Como señala una respuesta anterior, ROS se utiliza principalmente como una biblioteca de comunicación delgada. La capa de componentes de Rock es más gruesa, para proporcionar las herramientas necesarias para escalar a sistemas complejos.

Lo que debe entender es esto: en la actualidad, el único software robótico de código abierto que vale la pena mirar es independiente del marco (OpenCV, PCL, OpenRave, Gazebo, ...). Incluso Willow Garage finalmente entendió esto. Por lo tanto, se puede integrar con una cantidad mínima de trabajo en cualquier marco.

Ahora: tu mejor elección también depende de tu puntería. Si lo que quiere es vender hardware, entonces es muy posible que tener un nodo ROS sea su mejor opción (aunque tener una buena biblioteca de controladores que luego se integre en un nodo ROS es aún mejor).


Tal vez para agregar a esta respuesta, Rock se basa en Orocos, que aparece en otra respuesta y, por lo tanto, hace que sea mucho más fácil para los sistemas basados ​​en él ser capaces en tiempo real.
Jakob

5

Orocos

Es uno de los marcos de código abierto más antiguos en robótica, en desarrollo desde 2001, y con aplicaciones y productos industriales profesionales que lo utilizan desde aproximadamente 2005. El objetivo de Orocos siempre ha sido proporcionar un marco de componentes con capacidad en tiempo real. denominado Real-Time Toolkit (RTT) implementado en C ++ y lo más independiente posible de cualquier middleware de comunicación y sistema operativo.

Como dijo @BarretAmes, hay integraciones que permiten la implementación de sistemas híbridos, donde Orocos y otros Software Framework trabajan juntos.


También hay formas de emparejar Orocos con otros marcos. Por ejemplo, aprovechando ROS con Orocos.
Barrett Ames

1
Para su información, Rock está utilizando Orocos / RTT como su implementación de componentes, simplemente agregando muchas herramientas y bibliotecas a su alrededor
sylvain.joyeux

orocos puede ser bueno, pero ahora su sitio web oficial y sus foros ya no están actualizando nada y no hay nuevos usuarios que puedan iniciar sesión en sus foros, por lo que orocos apesta ahora.

3

Mi plataforma preferida es ROS. Sin embargo, hay otro fuerte contendiente de ... me atrevo a decirlo ... Microsoft. Se llama Robotics Developer Studio (RDS). Comience su búsqueda aquí: http://www.microsoft.com/robotics/

Tienen muchos videos de aplicaciones impresionantes. Para mí, el mayor beneficio es el soporte incorporado para Kinect a través del SDK de Kinect de Microsoft. Técnicamente, el que utiliza ROS de OpenNI tiene las mismas capacidades, pero parece reconfortante saber que el SDK que utiliza RDS está escrito por la misma compañía que produjo el hardware.


2

Player / Stage sigue siendo uno de los proyectos de robótica de código abierto más populares que existen. Ha existido durante mucho tiempo y algunos de sus desarrolladores han avanzado para iniciar ROS, pero eso no resta valor a la utilidad de Player. De hecho, los tres componentes principales, Player (el marco), Stage (el simulador 2D) y Gazebo (el simulador 3D), han sido diseñados para ser algo compatibles con ROS .



1

OpenRTM

OpenRTM-aist es desarrollado por el Instituto Nacional Japonés de Ciencia y Tecnología Industrial Avanzada que también contribuye a la definición del estándar RT-middleware.

Es un marco basado en componentes de código abierto, que proporciona capacidades en tiempo real. Además del marco, hay algunas herramientas disponibles:

  • RTC Builder: una herramienta para la generación de código esqueleto. Se lanza en el entorno de desarrollo eclipse. OpenRTM-aist también es compatible con la plantilla RTC, que es una herramienta de generación de código de esqueleto del tipo de línea de comandos.
  • RT System Editor: una cadena de herramientas basada en Eclipse para diseñar componentes y sistemas basados ​​en componentes.
  • rtshell es una herramienta de línea de comandos que proporciona los siguientes servicios
  • RTC depurador: una herramienta de depuración para RTC. El depurador RTC es un complemento de Eclipse.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.