¿Qué es ROS?
Definir "robot
ROS son las siglas de Robot Operating System (Sistema Operativo para Robots). Sin embargo, para entender qué es ROS, primero debemos definir qué entendemos por robot. Un robot, en el contexto de este blog, es un vehículo u objeto que puede moverse de forma autónoma por su entorno sin necesidad de interacción humana continua y/o guiado por una infraestructura. Debe ser capaz de tomar sus propias decisiones basándose en la información que recibe de los sensores de a bordo.
Un robot puede ser desde un recolector de fruta autónomo hasta un robot de limpieza de pasillos de hotel. Pero el hecho sigue siendo el mismo: tiene que desplazarse de forma autónoma.
¿Cómo funciona ROS?
A pesar de su nombre, ROS no es estrictamente un sistema operativo. Es un conjunto de bibliotecas y herramientas de código abierto que proporcionan un marco para desarrollar software que se ejecuta en sistemas robóticos. No obstante, requiere un sistema operativo principal sobre el que ejecutarse, normalmente un sistema basado en Linux como Ubuntu. Luego, con la capa ROS, permite la abstracción de hardware necesaria y otras funcionalidades comunes requeridas en la creación de programas para robots.
Pero, ¿qué hace de ROS una propuesta atractiva para los desarrolladores?
1) De código abierto y ampliamente utilizado
Gracias a su código abierto y a su adopción cada vez más generalizada, ROS se ha convertido en uno de los estándares de la programación robótica. Más allá de sus orígenes académicos, cada vez son más las empresas que empiezan a utilizar el entorno ROS. Muchos clientes de OXTS están desarrollando nodos y controladores para productos comerciales, de modo que puedan integrarse fácilmente en esta plataforma común.
2) Admite muchos sensores
La larga lista de sensores compatibles con ROS incluye muchos sistemas LiDAR; cámaras estéreo, térmicas y RGB; sensores de fuerza/par; controladores de motor; y sistemas de posicionamiento como los sistemas de navegación inercial de OXTS -como el RT3000 v4
3) Barrera de entrada baja
Gracias a la amplia adopción y al estándar universal, la barrera de entrada para crear aplicaciones de robótica se ha reducido enormemente y la comunidad está más interconectada. El código es más fácilmente transferible a distintos sistemas robóticos, y los desarrolladores no tienen que empezar de cero para sentar las bases de cada fabricante de hardware diferente que utilicen.
¿Para qué sirve ROS?
ROS se utiliza habitualmente en una amplia y variada gama de aplicaciones. Muchos de los casos de uso que vemos hoy en día para ROS son en aplicaciones en las que se desea "asistencia humana". Así, los ingenieros que construyen vehículos autónomos o robots industriales y médicos utilizan el marco ROS. Por supuesto, la investigación y la educación también suelen utilizar ROS para ayudar a desarrollar productos para estas aplicaciones.
En esta sección hablamos de por qué estas aplicaciones utilizan ROS.
Navegación autónoma de vehículos
Tras la explosión de ADAS (asistencia avanzada al conductor) que aparecieron en los vehículos a principios o mediados de la década de 2000, el siguiente paso natural en esta evolución es la plena capacidad de conducción autónoma.
En esencia, un vehículo autónomo es un robot más. Para ser funcionalmente seguro, el vehículo debe saber dónde está, hacia dónde se dirige, cómo llegar (siguiendo la trayectoria prevista) y evitar los obstáculos que encuentre en su camino, igual que un robot.
Para ello, el vehículo necesita utilizar datos de múltiples sensores, como LiDAR, velocidad de las ruedas, cámara y, por supuesto, sistemas de navegación como GPS o INS, y actuar en función de la información que recibe. ROS es, por tanto, un marco importante para este caso de uso, ya que ofrece a los ingenieros la posibilidad de trabajar con los datos de cada sensor y crear algoritmos que generen una respuesta de los motores basada en la información recibida de los sensores.
Además de la integración de hardware, ROS también es útil para la simulación, la visualización de trayectorias, las pruebas y la depuración, el registro de datos y la reutilización.
Robótica industrial
Otra aplicación de ROS es la robótica industrial. Al igual que un vehículo autónomo, un robot que opere en un almacén o un puerto, por ejemplo, tendrá que desplazarse con precisión y seguridad por su entorno sin necesidad de intervención humana, aunque a menor escala.
En un entorno industrial, un robot puede tener muchas formas y tamaños diferentes, dependiendo de la tarea que se le pida que realice. Un AGV (Vehículo Guiado Autónomo) puede utilizarse para transportar existencias, o un robot más pequeño podría desplegarse para limpiar el suelo de una fábrica de forma similar a como lo hace una aspiradora autónoma en un hotel. Sin embargo, hay algo que no varía: la necesidad de operar en distintos entornos.
Para operar en múltiples entornos, se necesita un enfoque de fusión de sensores y, por lo tanto, ROS es fundamental por todas las mismas razones mencionadas anteriormente.
Robótica médica
La profesión médica se enfrenta actualmente a numerosos retos. La población general envejece y la mano de obra disminuye. Esto significa que el empleo de robots para realizar tareas repetitivas y de menor envergadura, como la ayuda a la movilidad y los ejercicios de rehabilitación, supone una ventaja real y clara.
En este caso, siempre que la ruta sea repetible, ROS puede utilizarse para garantizar que el robot se ciña a la ruta previamente planificada. También pueden utilizarse algoritmos de percepción para evitar accidentes con robots.
Además de aplicaciones de movilidad y rehabilitación, los robots también pueden utilizarse en robótica médica para comprobar sistemáticamente las observaciones de los pacientes y alertar al personal formado si se detecta alguna irregularidad.
Utilización de sistemas OxTS con ROS
En OXTS hemos desarrollado un controlador para ROS 2ROS, la versión más reciente de ROS, que proporciona una colección de paquetes que pueden descodificar los datos de navegación NCOM en directo de un dispositivo INS OXTS y también publicar estos datos en un formato que pueda ser utilizado por otros dispositivos compatibles con ROS. Esto permite al dispositivo OXTS integrarse fácilmente en una red ROS más amplia y proporcionar datos de posicionamiento, localización y dinámica para aplicaciones de navegación y control.
También hemos desarrollado otro paquete que se ejecuta independientemente de la descodificación de datos NCOM. Este nodo, llamado "ROS 2GAD", puede tomar datos de otros sensores del entorno ROS, como LiDAR y cámaras, y convertirlos a nuestro formato de Datos Genéricos de Ayuda (GAD).
OXTS Generic aiding with inertial in combination (or instead of GNSS) es una interfaz desarrollada para permitir una integración más rápida de sensores externos que pueden utilizarse para ayudar al motor de navegación proporcionando mediciones de aspectos como la posición, la velocidad y la actitud.
Al convertir los mensajes ROS al formato estándar GAD, los datos pueden pasarse directamente al motor de navegación OXTS, donde se combinan con los datos inerciales y otras fuentes de ayuda, como el GNSS.
Resumen de la solución de navegación de robots autónomos
Los AMR necesitan una solución robusta de localización de robots; una herramienta que no sólo registre la posición y orientación del robot, sino que además funcione tanto en interiores como en exteriores.
Este resumen de soluciones repasa los aspectos que recomendamos a nuestros clientes que tengan en cuenta a la hora de decidir la fuente de localización de sus robots móviles autónomos.
Lea el resumen de la solución para saber cómo la solución adecuada de localización de robots puede ayudarle en su proyecto AMR, incluidas las preguntas clave que debe hacerse antes de embarcarse en un proyecto.
English
Chinese
German
Japanese
Korean