ROS es un conjunto de utilidades y bibliotecas para implementar todo tipo de funcionalidades en robots. No es un lenguaje de programación.
Para una visión general de lo que es ROS, recomendaría esta explicación de Brian Gerkey (el desarrollador principal de Stage y ROS):
¿Qué es exactamente ROS? Middleware, Framework, Sistema operativo?
Esta respuesta se centra en los valores centrales de ROS para que comprenda por qué diseñan ROS de esta manera (los mecanismos mencionados en otras respuestas se desarrollan para respaldar estos valores centrales), por lo que primero arrojaría algo de luz sobre lo que ROS significa. El desarrollo en robótica es lento en las últimas décadas porque las personas distribuyeron sus esfuerzos a diferentes sistemas. Por ejemplo, la Universidad de Tokio puede desarrollar sus propios robots, pero estos robots no son compatibles con los robots de Stanford. (como la historia de la “torre de babel”) Para las personas normales como tú y yo, incluso no es posible obtener códigos fuente y proporcionar ayuda para el desarrollo de la robótica. En ese contexto, hacer grandes progresos en robótica es bastante difícil. Entonces salió ROS, con el objetivo de reunir el trabajo de las personas y luego desarrollar robots más avanzados sobre ellos.
- ¿Sería posible convertir las radiaciones capturadas por una cámara infrarroja o térmica en luz visible en la postproducción a través de IA / computación en la nube?
- ¿Cómo mejorará la inteligencia artificial la educación?
- ¿Por qué la mayoría de los asistentes personales de IA no están diseñados para la comunicación por correo electrónico?
- ¿Puede una red neuronal humana llegar a un estado de equilibrio como una red neuronal artificial?
- ¿Las iniciativas de investigación de IA de código abierto acelerarán la interrupción de los empleos y la economía a un ritmo inmanejable?
Ahora puedo hablar sobre el valor central en ROS, el objetivo principal de ROS es apoyar la reutilización del código en la investigación y el desarrollo de la robótica. ROS es un marco distribuido de procesos (también conocidos como nodos ) que permite que los ejecutables se diseñen individualmente y se acoplen libremente en tiempo de ejecución .
ROS tiene muchas características excelentes, pero creo que solo hay que mencionar dos características:
1.Reutilización de código
ROS es de código abierto y proporciona un sólido sistema de gestión de paquetes. Puede construir fácilmente su propio sistema combinando paquetes lanzados en ROS. El ejemplo en el siguiente punto aclararía este punto.
2. Los ejecutables pueden diseñarse individualmente y conectarse fácilmente en tiempo de ejecución
Explicaré esta característica en un ejemplo. Intenta imaginar que eres un experto en navegación de robots, escribiste un programa A que puede dejar que el robot vaya a donde quiera sin problema. Sin embargo, debe usar los datos de la cámara para que el robot sepa cómo planificar su trayectoria de movimiento (digamos que el programa que puede procesar los datos de la cámara es el programa B). Si está utilizando ROS, puede ejecutar el programa de procesamiento de datos de la cámara de otras personas como el programa B, y el programa conectado A y el programa B en el entorno proporcionado por ROS. Y viceversa, otras personas pueden usar el programa de navegación de primera clase proporcionado por usted en lugar de escribir un programa de navegación de bajo rendimiento por sí mismos.
Los conceptos anteriores son las cosas centrales que quiero mencionar. Tengo mucho que decir acerca de ROS, ya que es muy potente y flexible, pero, como de costumbre, una mayor potencia y flexibilidad tienen el costo de una mayor complejidad. No quiero que esta respuesta sea confusa.
Si no está satisfecho, la Guía de inicio de ROS (ROS / Guía de inicio – Wiki de ROS) es un buen punto de entrada.
Otra pregunta relacionada sobre ROS Respuesta:
http://answers.ros.org/question/…