Red de conocimiento del abogados - Cuestiones jurídicas del divorcio - Cómo diseñar un robot móvil basado en ROS

Cómo diseñar un robot móvil basado en ROS

En los últimos años han surgido varios robots móviles, ya sean con ruedas o con orugas. Cómo hacer que los robots móviles se muevan es el trabajo principal. Para permitir que el robot realice una serie de funciones como la percepción ambiental, el control del manipulador y la planificación de la navegación. , requiere el soporte de un sistema operativo, y ROS es una de las plataformas de software más importantes y ha sido ampliamente utilizada en la investigación científica.

Sin embargo, no hay muchos libros sobre ROS y hay incluso menos comunidades de aprendizaje disponibles en China. Esta clase abierta y trabajadora le enseñará cómo utilizar ROS para diseñar robots móviles.

Invitado compartido Li Jinbang: fundador y director ejecutivo de EAI Technology, graduado del Instituto de Tecnología de Beijing con una maestría. Tiene muchos años de experiencia en la investigación y el desarrollo de tecnología subyacente de Linux en los departamentos de tecnología de NetEase, Snowball y Tencent. En 2015, cofundó EAI Technology, responsable de la investigación y el desarrollo de algoritmos SLAM y productos de software de navegación y posicionamiento relacionados. EAI Technology se centra en la movilidad de robots y proporciona plataformas de movilidad de robots, algoritmos Slam y lidar de alto rendimiento para el consumidor.

Tres partes de los robots móviles

El llamado movimiento inteligente significa que el robot puede planificar su ruta de forma independiente de acuerdo con los cambios en el entorno circundante, evitar obstáculos y alcanzar el objetivo.

Los robots simulan diversos comportamientos humanos. Imagínese qué órganos se necesitan para que una persona camine. Primero use sus ojos para observar el entorno circundante, luego use su cerebro para analizar cómo caminar para alcanzar el objetivo, luego use sus piernas para caminar, y así sucesivamente hasta llegar a la dirección objetivo. Si un robot quiere moverse de forma inteligente, también necesita la estrecha cooperación de sus ojos, cerebro y piernas.

Piernas

Las “piernas” son la base del movimiento del robot. Las "piernas" de un robot no se limitan a patas humanas o animales, sino que también incluyen ruedas, orugas y otras partes que permiten que el robot se mueva, denominadas colectivamente "piernas".

La ventaja de las piernas humanoides es que no sólo pueden moverse en condiciones complejas de la carretera (como subir escaleras), sino que también pueden imitar movimientos humanos (como bailar) de manera más vívida. Las desventajas son: estructura y unidad de control complejas, alto costo y acción lenta.

Por lo tanto, la mayoría de los robots móviles son robots con ruedas, que tienen las ventajas de un diseño de ruedas simple, bajo costo y velocidad de movimiento rápida. También existen muchos tipos de vehículos de ruedas: vehículos de equilibrio de dos ruedas, vehículos de tres, cuatro y varias ruedas, etc. Actualmente, la más económica y práctica son dos ruedas motrices y una rueda universal.

Ojos

El ojo del robot es en realidad un sensor. Su función es observar el entorno circundante, con radar láser, visión (cámara de profundidad, cámaras simples y dobles) y auxiliares (alcance ultrasónico, alcance infrarrojo) adecuados para ojos de robot.

"Cerebro"

El cerebro del robot se encarga de recibir los datos que le transmiten los "ojos", calcular la ruta en tiempo real y dirigir el movimiento de las piernas.

De hecho, se trata de convertir lo que ves en un lenguaje de datos. Apuntando a una serie de cuestiones como cómo describir datos y cómo implementar la lógica de procesamiento. El sistema ROS nos proporciona un buen marco de desarrollo.

Introducción a ROS

ROS es un sistema operativo basado en Linux. Su predecesor fue un proyecto establecido por el Laboratorio de Inteligencia Artificial de Stanford para respaldar los robots inteligentes de Stanford. Proporciona principalmente algunos servicios de sistema operativo estándar, como abstracción de hardware, control de dispositivos subyacentes, implementación de funciones comunes, mensajes entre procesos y gestión de paquetes de datos, etc. .

ROS se basa en una arquitectura gráfica, por lo que los procesos en diferentes nodos pueden recibir, publicar y agregar información diversa (como detección, control, estado, planificación, etc.). Actualmente, ROS es compatible principalmente con Ubuntu. Sistema operativo.

Algunas personas preguntan si ROS se puede instalar en una máquina virtual. Generalmente es posible, pero recomendamos instalar sistemas duales y usar Ubuntu para ejecutar ROS exclusivamente.

ROS en realidad se puede dividir en dos capas. La capa inferior es la capa del sistema operativo mencionada anteriormente, y la capa superior son varios paquetes de software que implementan diferentes funciones, como dibujo de posicionamiento, planificación de acciones, percepción. simulación, etcétera. ROS (bajo nivel) utiliza la licencia BSD y es un software de código abierto que se puede utilizar de forma gratuita con fines comerciales y de investigación, mientras que los paquetes proporcionados por usuarios avanzados utilizan muchas licencias diferentes.

Utilice ROS para realizar el movimiento del robot

Para el espacio bidimensional, el movimiento aleatorio de máquinas con ruedas se puede realizar utilizando velocidad lineal + velocidad angular.

Velocidad lineal: describe la velocidad a la que el robot se mueve hacia adelante y hacia atrás.

Velocidad angular: describe la velocidad angular de rotación del robot.

Entonces, el objetivo principal de controlar el movimiento del robot es convertir la velocidad lineal y la velocidad angular en la velocidad de las ruedas izquierda y derecha, y luego convertir la velocidad lineal y la velocidad angular en la velocidad de las ruedas izquierda y derecha a través del diámetro de la rueda y la distancia entre ruedas.

Aquí hay una cuestión clave, que es la elección del codificador y la regulación de la velocidad pid.

Selección de encoder: Generalmente, el encoder y la rueda están en el mismo eje. Si la velocidad actual es inferior a 0,7 m/s, está bien elegir un codificador de 600 a 1200 teclas. Sin embargo, cabe señalar que es mejor utilizar un codificador de doble línea. Las salidas de doble línea A y B están separadas 90 grados, para poder lograr la estabilización de la imagen. La estabilización de imagen puede hacer que los cálculos de kilometraje sean más precisos en el futuro.

El control de velocidad de las ruedas izquierda y derecha se realiza mediante la retroalimentación del codificador de rueda y el ajuste en tiempo real del PMW del motor mediante el PID. Calcula el kilometraje del coche en tiempo real y obtén cambios en la posición de movimiento del coche.

El cambio de posición del coche lo calcula el codificador.

Si las ruedas patinan, el cambio calculado puede diferir del cambio real. Resolver este problema en realidad significa ver que el problema está empeorando. Lo que importa es si caminas 5 metros y solo caminas 4,9 metros, o si caminas 180 grados y solo caminas 179 grados.

De hecho, los ángulos imprecisos tienen un mayor impacto en el coche. En términos generales, la precisión de la distancia lineal del automóvil se puede controlar en centímetros y la precisión angular se puede controlar entre el 1% y el 2%. Debido a que el ángulo es un parámetro importante, muchas personas usan giroscopios para corregirlo.

Por eso, a veces la gente pregunta qué tan preciso es el coche. De hecho, la tasa de precisión es relativamente alta ahora, pero inevitablemente ocurrirán problemas como deslizamientos y es imposible lograr una precisión del 100%.

Ahora es aceptable que los mapas de navegación autoconstruidos alcancen la distancia y el ángulo del coche. Para mejorar la precisión, es posible que se necesite la ayuda de otros equipos, como un lidar, que puede realizar detección y corrección secundarias.

El formato de almacenamiento de los datos LIDAR primero tendrá un rango de tamaño. Si excede el rango, no será válido. También hay varios puntos de muestreo, por lo que el lidar puede indicarle cuántos grados tiene el punto de muestreo.

Además, la última intensidad te indica la precisión de los datos, porque lidar también toma los datos del punto más alto y tiene cierta precisión. El ppt anterior en realidad usa lidar para escanear la forma de una pared.

De hecho, no tiene sentido que LIDAR escanee una forma estática. El significado del mapeo por radar es en realidad construir un mapa de la habitación.

¿Cómo dibujar un mapa?

El primer paso es recopilar datos oculares:

Para lidar, ROS define una estructura de datos especial en el paquete sensor_msgs para almacenar información relevante de los mensajes láser, llamada LaserScan.

Especifica el alcance efectivo del láser, el ángulo de muestreo del punto de escaneo y el valor de medición de cada ángulo. Lidar puede medir la distancia, la forma y los cambios en tiempo real de los obstáculos mediante un escaneo en tiempo real de 360 ​​grados.

El segundo paso es convertir los datos vistos por los ojos en un mapa:

Gmapping de ROS convierte datos lidar/escaneo en datos de mapas ráster, donde el negro representa obstáculos y el blanco representa un Área en blanco que se puede pasar sin problemas, gris: área desconocida. A medida que el robot se mueve, el lidar puede buscar obstáculos en el mismo lugar en muchas direcciones diferentes. Si el umbral de obstáculo supera el valor establecido, indica que hay un obstáculo. De lo contrario, no existen obstáculos para la calibración. Es un mapa rasterizado que utiliza diferentes escalas de grises para representar el tamaño de los obstáculos, áreas vacías y áreas desconocidas. Facilitar el posicionamiento y la navegación para el siguiente paso.

A veces hay una pared muy recta, pero el robot no puede caminar recto. En este momento, el problema puede ser que las ruedas del robot patinan, provocando que se extravíe. El mapa dibujado en este momento también puede estar torcido. Esta situación se puede evitar añadiendo un giroscopio. Debido a las características del lidar, a veces las superficies negras o espejadas pueden provocar una medición imprecisa.

La solución actual es no utilizar lidar, ni utilizar lidar y ultrasonido para el procesamiento auxiliar.

El mapa de ROS tiene varias capas. Puedo apilar varios lidars de diferentes alturas para dibujar un mapa. Una vez dibujado el mapa, se puede realizar el posicionamiento y la navegación.

¿Cómo localizar y navegar?

Posicionamiento: En realidad es un posicionamiento probabilístico, no 100% exacto. Según la forma de los obstáculos circundantes escaneados por el LIDAR, el robot puede coincidir con la forma del mapa para determinar la probabilidad de su ubicación.

El éxito del posicionamiento de robots tiene mucho que ver con las características de los mapas. Si las características geográficas son obvias, el robot puede determinar fácilmente su ubicación. Si es difícil de localizar, es posible que alguien deba especificar la ubicación inicial o agregar LED para identificar la ubicación u otros dispositivos de posicionamiento para ayudar a localizar.

Actualmente, cada vez existen más tecnologías para la visión a través del color o la luz.

Navegación: planificación de ruta global + ajuste local (evitación dinámica de obstáculos)

La navegación es en realidad posicionamiento global. Una es planificar basándose en mapas existentes, pero la planificación de rutas locales se llevará a cabo durante la operación. Pero la situación general todavía se basa en el camino global.

A la navegación aún le queda mucho trabajo por hacer. Por ejemplo, la planificación del recorrido de una máquina barredora es diferente a la de un robot de servicio. Un robot de barrido puede requerir un mapa de cobertura total con esquinas, mientras que un robot de servicio planifica principalmente alrededor de una ruta designada o la ruta más corta, que es la mayor carga de trabajo de ROS.

La planificación de rutas varía mucho según los diferentes escenarios de aplicación, pero ROS proporciona un paquete básico de desarrollo de planificación de rutas. Sobre esta base, haremos la planificación de rutas nosotros mismos.

Descripción del robot y conversión del sistema de coordenadas

Al navegar, las áreas que se pueden pasar dependen de la forma del robot y otra información. ROS utiliza URDF (formato unificado de descripción de robot) para describir el diseño de tamaño del hardware del robot, como la posición de las ruedas, el tamaño del chasis, la posición de instalación del lidar, etc., lo que afectará la transformación del sistema de coordenadas.

El sistema de coordenadas sigue la premisa de que cada cuadro solo puede tener un cuadro principal, y luego se establece algún contacto visual o asociación.

La posición de instalación del lidar afecta directamente a los datos de salida de /scan.

Por lo tanto, las posiciones relativas del lidar y el robot requieren una transformación de coordenadas para convertir los datos del lidar en datos de la perspectiva del robot.

El sistema de coordenadas de ROS se reduce en última instancia a tres marcos estándar que pueden simplificar muchos problemas comunes de la robótica:

1) Marcos globalmente precisos pero localmente discontinuos ("mapeo")

2) Cuadros con imprecisión global pero suavidad local ("odom")

3) Cuadro propio del robot ("base_link")

Muchos sensores (como lidar, cámara de profundidad, Acelerómetro giroscópico) puede calcular la relación de coordenadas entre base_link y odom, pero dado que "cada cuadro solo puede tener un cuadro principal", solo un nodo (como el multisensor de fusión robot_pose_ekf) puede publicar base_link y La relación de coordenadas de odom.

El propio sistema de coordenadas del enlace base, debido a que se instalan diferentes componentes en diferentes ubicaciones del robot, debe corresponder al sistema de coordenadas del enlace base, porque todos los sensores deben "ver" a través de la perspectiva del robot.

Un amigo me preguntó que cuando el lidar estaba construyendo un mapa, el mapa quedaría desordenado después de que el automóvil se moviera porque el sistema de coordenadas del chasis del automóvil y el sistema de coordenadas del lidar no estaban calibrados con precisión.

La conexión entre el mapa y Odom

Debido a que el movimiento del automóvil requiere una conexión local, como que el automóvil avance y acumule continuamente, esta es la función del odómetro y el mapa. desempeña el papel de global, los efectos discontinuos se mapean mediante lidar.

Si quieres aprender ROS, el cambio de sistema de coordenadas es muy importante. Otra cosa acerca de la transformación del sistema de coordenadas es que cada marco tiene solo un marco principal. A veces, si dos coordenadas están relacionadas, significa que A y B están relacionados, y B y C están relacionados, en lugar de B/C y A.

La relación padre-hijo de los tres marcos de coordenadas es el siguiente:

Map->Odom->Enlace básico

De hecho, tanto map como odom deberían estar asociados con base_link, pero para cumplir con el Según las reglas, cada marco solo puede tener un marco principal. Según el principio del mapa, base_link y Odom->Base_link, la relación de coordenadas entre el mapa y odom se calcula y publica.

Odom-> El nodo del odómetro calcula y publica la relación de coordenadas de base_link.

La relación de coordenadas de map->base_link es calculada por el nodo de posicionamiento, pero no se libera. En cambio, recibe las coordenadas Odom->Base_link, calcula las coordenadas map->Odom y luego las libera. él.

Con solo un odómetro, podrás correr sin lidar, pero primero deberás simplemente seguir el mapa preestablecido para evitar obstáculos.

Preguntas y respuestas maravillosas

P: ¿Se ha mejorado el rendimiento en tiempo real de ROS?

Respuesta: La mejora en tiempo real depende del diseño de ROS2.0. De hecho, el progreso de ROS2.0 se anuncia en línea. Pero, de hecho, su progreso aún está lejos de la aplicación práctica, al menos en la segunda mitad de este año, pero podemos estudiar su código. Mejoró enormemente la gestión de memoria en tiempo real y la gestión de subprocesos.

P: vslam requiere mucha memoria y CPU. ¿Qué configuración de hardware utilizó la Sra. Li en el proyecto real? ¿Qué tamaño de mapa puedes hacer?

Respuesta: Efectivamente. En la actualidad, todavía se utilizan lidar y sensores para ayudar. Esto tiene menos que ver con el tamaño del mapa y más con la complejidad de los obstáculos del terreno.