CMU-Sistema autónomo de exploración y navegación (TARE & FAR Planner) aprendizaje-Todo en uno

Referencias

Dirección en papel y código

Parte Ⅰ Algoritmos de exploración y planificación

1. Introducción

1.1 Antecedentes de exploración de robots

  • Un entorno desconocido que está lleno de peligro o ha sido contaminado , y no es adecuado para que entren los humanos.
  • Entornos 3D complejos y desordenados

Problema de dilema causal entre la navegación del robot y SLAM

  • El robot puede completar el movimiento punto a punto por sí mismo a través del sistema de navegación, pero su realización depende en gran medida del mapa global . SLAM puede construir un mapa global , pero necesita atravesar manualmente todo el entorno a mano, control remoto, conducción, etc. Una vez eliminado el operador, la aplicación del robot quedará limitada por el dilema causal del "huevo y la gallina" entre navegación y SLAM
  • El sistema de Exploración Autónoma nace para solucionar tales problemas. Con la ayuda de algoritmos de exploración, el robot puede atravesar de forma autónoma el entorno desconocido y construir un mapa completo sin intervención humana . Desde el punto de vista del rendimiento, el sistema de exploración autónomo en realidad automatiza el proceso de SLAM atravesando manualmente el entorno, por lo que también se incluye en la categoría de SLAM activo (Active-SLAM)
  • Algunos planificadores (como FAR Planner ) que pueden responder rápidamente al entorno local también pueden lograr una navegación autónoma en entornos desconocidos , pero aún necesitan dar manualmente el punto de destino Puntos de meta

1.2 Ejemplo de aplicación de la tecnología de exploración robótica

  • En escenarios militares : relativamente común
  • En escenarios civiles/industriales: tomando como ejemplo el accidente nuclear de Fukushima
    • Antecedentes medioambientales : agua en generadores, fusión de reactores, explosión de hidrógeno, contaminación radiactiva
    • Aplicaciones tecnológicas : descontaminación radiactiva, restauración agrícola, reconstrucción de barrios

1.3 Problema de exploración y descripción de la tarea

  • Descripción del problema

    • Los robots perciben el entorno desde puntos de vista discretos/dispersos

      • El punto de vista se puede considerar como un punto en el espacio . El sistema necesita enviarse a sí mismo a un punto de vista, recopilar un marco de datos del entorno circundante en este punto y luego ir al siguiente punto de vista para recopilar el siguiente marco de datos.
      • El problema de exploración del robot se puede modelar como : hay un entorno desconocido, y es necesario colocar una serie de puntos de vista en este entorno, y luego se permite que el sistema camine a estos puntos de vista a su vez y recopile un marco de datos del sensor. la suma de estos datos del sensor constituye la cobertura de este entorno desconocido
    • Resolver un camino a través del mirador para lograr la cobertura del entorno (cobertura)

  • tarea del sistema

    • Actualizar la representación del entorno (representación del entorno)

      • Seguimiento de áreas cubiertas y descubiertas en el entorno circundante
      • Analiza los espacios transitables

        Entre ellos, la exploración de vehículos no tripulados es más complicada que la de drones, porque también incluye análisis de transitabilidad del terreno (TTA) en tierra , pero al mismo tiempo, los drones están más limitados por la carga y la duración de la batería.

      • Validar el punto de vista y vincular a la representación del entorno.
    • Evaluar la cobertura ambiental/ganancia de información del punto de vista

      • Qué partes o áreas del entorno se pueden ver colocando el sistema en un punto de vista
    • Encuentre una ruta de exploración óptima

1.4 Dificultades en la exploración de robots

  • La exploración es un proceso iterativo continuo entre la "actualización de la representación del entorno (área cubierta)" y la "búsqueda de ruta recorrida (que cubre más área)", por lo que se requieren recursos informáticos continuos
    inserte la descripción de la imagen aquí

  • La exploración es más difícil cuando el tamaño del entorno es un terreno relativamente grande, complejo, abarrotado y en 3D.

1.5 Desventajas de los algoritmos de exploración existentes

  • estrategia codiciosa

    • El sistema verifica qué parte del entorno tiene la puntuación más alta en un lugar determinado y luego coloca un punto de vista en este lugar y, al mismo tiempo, envía el sistema a este punto de vista y recopila un marco de datos; luego ve qué parte del El entorno tiene la puntuación más alta, continúe Coloque un punto de vista en este lugar y luego envíe el sistema al punto de vista para continuar recopilando un marco de datos, y así sucesivamente.
    • A menudo, solo se planifica un paso o dos o tres pasos ( solo se optimizan los objetivos a corto plazo ), y no hay una comprensión general del entorno (objetivos a largo plazo) , lo que hará que el sistema varíe en el entorno. , y es fácil caminar repetidamente en el mismo lugar baja eficiencia
  • La estructura de datos no es lo suficientemente eficiente.

    • El sistema necesita dedicar mucho tiempo a calcular la ruta de exploración (el algoritmo de exploración es un algoritmo en línea, el sistema necesita obtener la ruta de exploración de forma ininterrumpida y el sistema ejecutará la siguiente acción solo después de obtener la última ruta de exploración), por lo que el cálculo de la ruta de exploración toma El tiempo determina la eficiencia del algoritmo de exploración
    • Los algoritmos existentes necesitan mantener un mapa global . De esta manera, con la expansión del rango de exploración del robot, la velocidad de cálculo del algoritmo se ralentizará debido a la necesidad de mantener un mapa más grande y, eventualmente, el robot deberá detenerse y esperar a que se complete el cálculo antes de continuar moviéndose. Este tipo de paradas y arranques reduce aún más la eficiencia de la exploración.

2. TARE (Tecnologías para la exploración autónoma de robots): un marco jerárquico para explorar entornos 3D complejos

  • Primero calcule la ruta de exploración global y luego use la ruta de exploración global para guiar el cálculo de la ruta de exploración local
  • De esta manera, en el proceso de exploración del robot, la ruta que recorre tendrá más propósito debido a la guía general , como explorar esta habitación antes de explorar la habitación contigua, en lugar de ir a donde el área desconocida es relativamente grande.
  • horizonte global

    • Expresado en un entorno de baja resolución (disperso) , el cuadro/cuerpo verde de la figura es el lugar donde se almacena la información en el entorno global (el lugar que no está cubierto en el entorno global, en un momento determinado en el futuro, el sistema necesita ir a cada La posición del cuadro/cuerpo verde para cubrir el entorno local) y calcular una ruta de exploración global aproximada basada en estos cuadros/cuerpo verde
  • horizonte local

    • Use una representación de entorno de alta resolución (densa) , use una cantidad relativamente grande de cálculos para calcular cuidadosamente el punto de vista (punto amarillo en la Figura 1, punto azul en la Figura 2) y luego calcule una ruta de exploración local precisa después de obtener estos puntos de vista . Y deje que el sistema conduzca a lo largo de esta ruta de exploración local, de modo que los principales recursos informáticos puedan concentrarse en el espacio más cercano al robot , en lugar de desperdiciarse en lugares con mayor incertidumbre en la distancia.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

2.1 Planificación a nivel local

Actualice la representación del entorno y calcule el espacio transitable

  • Implementación
    • Adopte el método de punto de vista de muestreo aleatorio , luego resuelva un problema del vendedor viajero (Problema del vendedor viajero, TSP) , correspondiente a obtener una ruta de viaje ( Tour ) del vendedor viajero ( a través de cada punto de vista, determine el orden del robot para explorar el destino ); iteración repetida Haga esto, y finalmente mantenga un conjunto de puntos de vista óptimos y las correspondientes rutas de recorrido del vendedor viajero.Esta ruta óptima del recorrido del vendedor viajero es la ruta local (ruta local) que eventualmente se enviará al sistema para su ejecución.

      Problema del vendedor ambulante: Dada una lista de ciudades y la distancia entre cada par de ciudades, encuentre el camino más corto que visita cada ciudad una vez y regresa a la ciudad inicial

inserte la descripción de la imagen aquí

La cobertura del sensor debe ajustarse para tener en cuenta la superposición del campo de visión

  • camino suave
    • Ajuste uno o más segmentos de ruta a través del punto de vista, cada segmento de ruta es dinámicamente factible
    • Entre ellos, el punto naranja sólido es el punto de vista de muestreo , y el punto naranja hueco es el punto de ruptura (break-point)
    • El sistema no necesita detenerse al pasar por el punto de vista de muestreo , sino que pasa a una velocidad constante (continua y suave) , pero el sistema se detendrá en cada punto de interrupción (continuo pero no suave) , y luego ajustará la dirección en el lugar y luego se moverá. en el siguiente segmento de la ruta

inserte la descripción de la imagen aquí

2.2 Planificación a nivel global

Cree hojas de ruta dispersas atravesando el espacio

  • Implementación
    • Cuando hay un pequeño cuadro/cuerpo verde, también resuelve un problema del viajante de comercio (TSP) y obtiene una ruta del viajante de comercio, que es la ruta global final , y luego la envía al nivel local para guiar el cálculo de la ruta local.

      Almacenar información en pequeños cuadrados/volúmenes verdes, que representan áreas descubiertas en el entorno global ( principalmente en las intersecciones )

inserte la descripción de la imagen aquí

2.3 Caso real

  • La figura 2 a continuación involucra el problema de la reubicación: el sistema se transfiere a sí mismo a otro lugar, y este proceso de transferencia se denomina reubicación
    • ¿Por qué hacer una reubicación?
      • Cuando el entorno es complejo y enrevesado, a menudo ocurre una situación de este tipo: el área local cercana al sistema se ha cubierto por completo y el sistema necesita guiarse de manera eficiente a otro lugar.
      • En la Figura 2 a continuación, cuando el sistema llega al callejón sin salida en la esquina superior izquierda , el entorno local se ha cubierto completamente en este momento, y luego se guía hacia una intersección , y luego selecciona un ramal para continuar para completar la cobertura

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

  • cobertura parcial completa
    • Los caminos locales se reducen a los caminos más cortos a los bloques vecinos
    • Convertir implícitamente entre "explorar" y "reubicar"
    • Cuando todas las partes estén cubiertas, el problema degenerará. En este momento, el camino local obtenido es el camino más corto (imagen 2 a continuación), y luego se guía al siguiente cuadrado/cuerpo verde y continúa explorando el área descubierta.

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

2.4 Detalles de la implementación del algoritmo

  • Superficie generalizada
    • Definido como el límite entre el espacio libre y el espacio no libre
    • Incluyendo la superficie del objeto y el "límite ( fronteras , es decir, las dos hipotenusas en la figura de abajo )"
      • El algoritmo de exploración tradicional extraerá las fronteras en el entorno y luego el sistema explorará en la dirección de las fronteras.

inserte la descripción de la imagen aquí

  • Maximice la cobertura de la superficie
    • Si el sensor detecta que una superficie está cubierta dentro de cierta distancia y ángulo
      • El sistema maximizará la cobertura del sensor de la superficie del objeto (Puntos de superficie) : en el área local, la ruta más corta que permite al sensor "ver el todo y verse bien" se encuentra recorriendo el punto de vista ( Punto de vista). La curva de la siguiente figura representa esta pista. Los círculos naranjas representan los puntos de vista muestreados. La curva roja representa los puntos en la superficie del objeto que necesitan ser "cubiertos" por el sensor

inserte la descripción de la imagen aquí

  • En realidad, la distancia es más importante que el ángulo.

inserte la descripción de la imagen aquí

2.5 Conclusiones importantes (conclusiones importantes)

  • La exploración requiere un equilibrio entre "cobertura local" y "reubicación global para cubrir más"
  • Se necesita una representación eficiente del entorno para realizar un seguimiento de la cobertura calculada/áreas descubiertas y rutas de búsqueda
  • La densidad de datos locales es importante, y la densidad de datos lejos del robot puede compensarse por eficiencia computacional
    • Es necesario mantener una ruta de exploración local de alta resolución en el área local cercana al sistema.
    • Obtenga una ruta de exploración global aproximada con menos cómputo en el alcance global
  • Optimizar la ruta de exploración global es mejor que la estrategia codiciosa , porque esta última tiene el problema de la revisión redundante.

3. FAR Planner: Algoritmo de planificación de ruta rápido y heurístico que utiliza actualizaciones de visibilidad dinámica

El problema de exploración mencionado anteriormente es un problema de cobertura ambiental : coloque un sistema en un entorno desconocido y el sistema cubrirá el entorno de forma autónoma. El FAR Planner consiste en enviar el sistema a un determinado punto objetivo. Este punto objetivo (Goal point) es dado artificialmente por nosotros . El sistema calcula una serie de caminos (path) a través de una determinada vía.

inserte la descripción de la imagen aquí

3.1 Algoritmos de planificación de rutas comunes

inserte la descripción de la imagen aquí

  • Búsqueda basada en discretización : A*, D*
  • Muestreo basado : RRT

    El rendimiento de los dos métodos anteriores sigue siendo bueno cuando se trata de entornos conocidos, pero cuando se trata de entornos desconocidos, es necesario buscar a tientas todo el camino para llegar al punto objetivo .

  • Basado en características : como Visibility Graph, que genera un mapa de ruta ( Roadmap ) basado en la extracción de características ambientales y análisis de relaciones geométricas , y luego planifica en el Roadmap generado. Este método puede generar la ruta teórica más corta
    • En comparación con la aleatoriedad de RRT , que hace que el gráfico de ruta generado se superponga mucho (Redundancia) y sea denso (Denso) , es difícil de mantener dinámicamente. El Gráfico de visibilidad generado en función de las características ambientales tiene menos nodos , que se pueden cambiar cuando el entorno cambios, o En un entorno desconocido, se realizan actualizaciones rápidas y dinámicas a medida que el robot se mueve , lo que también minimiza la complejidad computacional de la planificación de rutas
    • Sin embargo, el método basado en características ambientales es difícil de aplicar en la práctica debido a sus altos requisitos de entrada ambiental , lo que limita el desarrollo de este método.

3.2 Planificador FAR (ruta rápida e intentable)

  • Definición y Características

    • Un algoritmo que puede extraer las características geométricas del entorno (obstáculos) en tiempo real y establecer dinámicamente un gráfico de visibilidad para la planificación de rutas y la navegación en un entorno real. Este algoritmo admite gráficos de rutas y rutas de navegación basadas en la entrada de sensores en tiempo real en entornos. sin mapas conocidos El ajuste dinámico en tiempo real , la planificación de ruta global y el ajuste dinámico dentro de un entorno de 300 m se pueden realizar en 1-2 ms
  • Implementación

    • Extracción de polígonos y registro de obstáculos

      • Primero, ingrese los datos de la nube de puntos del sensor
      • Luego, se crea una imagen binaria a partir de la nube de puntos de entrada y se aplica un método de filtrado promedio para producir una imagen borrosa.
      • Luego, extraiga los contornos de los polígonos de estas imágenes borrosas con vértices densos (abajo: los píxeles negros son pasables, los píxeles blancos son obstáculos y otros colores diferentes representan diferentes polígonos)
      • Finalmente, registre el polígono extraído (rojo en b abajo) con los datos de la nube de puntos del sensor (blanco en b abajo)
        inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí
    • Actualización dinámica de dos capas de vistas visuales

      • Para un entorno desconocido, el algoritmo procesa cada fotograma de la entrada del sensor: extrae características de polígonos de obstáculos y establece un V-Graph local mediante la detección de visibilidad mutua entre los puntos de esquina para la actualización global de V-Graph
      • De esta manera, la cantidad de cálculo para establecer un V-Graph global a gran escala se dispersará y se realizarán actualizaciones dinámicas en entornos desconocidos, de modo que el planificador pueda realizar una planificación de ruta exploratoria en entornos desconocidos.
        inserte la descripción de la imagen aquí
        inserte la descripción de la imagen aquí
    • Planificación en V-Graph

      • Detección de obstáculos dinámicos y actualización de ruta : al comparar la entrada de múltiples cuadros del sensor para detectar obstáculos dinámicos en el entorno (como peatones, vehículos), el algoritmo actualizará el V-Graph que está bloqueado por obstáculos dinámicos y dinámicamente Después de eliminar el obstáculo, restablezca la conexión entre los puntos de esquina correspondientes en el V-Graph anterior
      • Planificación de rutas tentativas en un entorno desconocido : cuando el punto de navegación/objetivo (Punto objetivo) se encuentra en un entorno desconocido sin un mapa anterior (Mapa anterior), el algoritmo planificará varias rutas factibles para probar y actualizar en función de la información ambiental más reciente.
    • Extendido a V-Graph multicapa 3D

      • Una versión 3D extendida adaptada a los métodos de planificación de UAV modela el entorno como múltiples cortes horizontales y extrae polígonos de múltiples capas . Como se muestra en la siguiente imagen: Los bordes de visibilidad (cian) abarcan varias capas de polígonos (rojo). Además, busque una ruta (azul) en la visualización multicapa 3D entre el vehículo (sistema de coordenadas) y el objetivo (punto rojo)
        inserte la descripción de la imagen aquí
  • Escenario de aplicación

    • Planificación y navegación de rutas rápidas en entornos conocidos

      • Establezca rápidamente V-Graph y realice la planificación de rutas en un entorno conocido, como: en una fábrica con información ambiental conocida, planificación y navegación de rutas de robots autónomos en un centro de distribución , al mismo tiempo, el sistema puede responder en tiempo real. entorno de entrada y obstáculos dinámicos que aparecen El mapa conocido se actualiza y la ruta de navegación se actualiza en tiempo real. De acuerdo con los diferentes requisitos de la tarea, los usuarios pueden establecer un algoritmo de planificación de tareas de nivel superior basado en este algoritmo de planificación , generar puntos de navegación de tiempo combinados con tareas , realizar y procesar requisitos de tareas en diferentes escenarios e implementar rápidamente en la plataforma de robot real.
    • Exploración Orientada y Navegación en Entornos Desconocidos

      • En algunas misiones de búsqueda y rescate, es necesario buscar un área específica en un entorno desconocido. El algoritmo puede planificar múltiples rutas factibles en función de la información de obstáculos ambientales conocidos actuales , y se actualizará continuamente durante el proceso de exploración hasta el posición objetivo Optimice la ruta, establezca un mapa de ruta global con el área de exploración , proporcione información ambiental para la navegación posterior del robot y proporcione directamente rutas de navegación para que otros robots o personal posteriores lleguen al área objetivo
    • Aprendizaje automático y formación en simulación

      • El algoritmo puede generar rutas de navegación basadas en características ambientales, que se pueden usar para generar una gran cantidad de datos de navegación y del entorno dinámico para el entrenamiento de la red. Combinando el modelo Matterport3D y el motor de renderizado AI Habitat Engine, proporciona una variedad de salidas de sensores, como mapas RGB, mapas de profundidad, mapas semánticos y nubes de puntos LiDAR, que pueden ser, por ejemplo, estimación de estado basada en lidar. o la percepción visual, la evitación de obstáculos locales y el entrenamiento de la red global Sim-to-Real, como la planificación y exploración de rutas, proporciona fuentes de datos de aprendizaje. Por ejemplo, basado en la estrategia de evitación de obstáculos y navegación visual basada en la red de entrenamiento (política de planificación visual), localización de extremo a extremo de entrenamiento y red de estimación de estado (red de localización de extremo a extremo)

Parte Ⅱ Sistema, Aplicaciones y Extensiones

1. Introducción

1.1 Entorno de simulación

  • CARLA Simulador 2017
    inserte la descripción de la imagen aquí

  • Simulador AirSim 2017
    inserte la descripción de la imagen aquí

1.2 Comparación del conjunto de datos reales (como KITTI) y el entorno de simulación

  • Ventajas del entorno de simulación.
    • Toda la verdad del terreno se puede obtener fácilmente, como: pose del vehículo, información semántica, etc.
    • Simulación conveniente de cambios ambientales, como iluminación, clima, obstáculos dinámicos, accidentes reales, etc.
    • Pruebas de pila autónoma (sistema completo) basadas en bucles de control de circuito cerrado (los conjuntos de datos a menudo solo prueban módulos individuales del sistema, etc.)

1.3 Pila de Autonomía

  • Pila de algoritmo de navegación genérico
    • Permite a los usuarios desarrollar algoritmos avanzados para simulación y prueba en lazos de control de circuito cerrado
    • Permite a los usuarios portar fácilmente la pila autónoma a la computadora de a bordo
    • Apoyo a la investigación conjunta en robótica y visión artificial
    • Aplicación ampliada con plataforma de suelo

2. Plataforma de sistema inteligente de robot

2.1 Arquitectura de plataforma de sistema inteligente de robot

  • Capa superior: planificador superior
    • Algoritmo de exploración TARE y planificador de ruta FAR Planner
  • Capa intermedia: entorno de desarrollo y utilidades
    • Entorno de desarrollo
      • Entorno de simulación : entorno interior, campus, estacionamiento, túnel y bosque
      • Algoritmos de navegación autónomos : prevención de colisiones, análisis de transitabilidad del terreno, seguimiento de waypoints
    • Utilidades : herramientas de visualización y depuración basada en joystick
    • Interfaz común con el algoritmo de la capa superior : waypoint , la capa superior solo necesita enviar el waypoint al entorno de simulación para realizar la comunicación
    • Interfaz común con el algoritmo subyacente : cmd_vel , el comando emitido contiene la velocidad lineal y la velocidad angular del robot
  • Capa inferior: Estimación de estado y control de movimiento
    • Proporciona interfaces con SOTA SLAM (como A-LOAM, LeGO-LOAM, LIO-SAM, FAST-LIO2, etc.)

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

2.2 Algoritmo de capa superior (Top-Layer)

2.2.1 Planificador de Exploración TARE
  • Un marco jerárquico de dos capas para la exploración eficiente de entornos grandes y complejos
    • Capa local: use una representación de mapa densa para planificar una trayectoria de exploración local fina para cubrir el entorno alrededor del robot
    • Capa global: use una representación de mapa dispersa para planificar una trayectoria de exploración global aproximada que cubra todo el entorno y luego use esta trayectoria de exploración global para guiar la trayectoria de exploración local
      inserte la descripción de la imagen aquí
2.2.2 Planificador de ruta global FAR Planner
  • características
    • Gráfico de visibilidad : planificador de ruta basado en que puede funcionar en entornos conocidos o desconocidos, y puede cambiar rutas ( redireccionamiento ) en entornos a gran escala
    • Un subproceso mantiene dinámicamente un gráfico de visibilidad ( ejecutándose continuamente en segundo plano y actualizando el mapa) mientras el robot se mueve , y otro subproceso puede buscar una ruta factible al punto de destino dentro de los 3 ms en esta visualización

inserte la descripción de la imagen aquí

2.3 Algoritmo de capa intermedia (Mid-Layer)

  • Capa intermedia: diagrama de bloques del sistema de navegación autónomo

inserte la descripción de la imagen aquí

2.3.1 Modelo de entorno de simulación
  • Ambientes interiores, campus, estacionamientos, túneles y bosques

inserte la descripción de la imagen aquí

2.3.2 Prevención de colisiones
  • Evitación de obstáculos locales (el contenido principal de Local Planner)
    documento correspondiente: Falco: evitación rápida de colisiones basada en la probabilidad con extensión a la navegación guiada por humanos

    • La idea principal del algoritmo es permitir que el cálculo se realice fuera de línea tanto como sea posible.

    • efecto

      • La mayoría de las trayectorias generadas por el algoritmo de la capa superior son trayectorias sin colisiones , pero en realidad, las trayectorias generadas por el algoritmo de la capa superior se basan en mapas relativamente aproximados (se ignoran algunos detalles), por lo que es imposible garantizar 100 % libre de colisiones durante la operación real Por lo tanto, el planificador local debe generar la trayectoria de acuerdo con el mapa fino
      • Separe el algoritmo de nivel superior de otras partes, no es necesario enviar instrucciones al robot subyacente, solo necesita enviar un punto de ruta, y el resto se entrega al planificador local para enviar instrucciones al robot para su ejecución.
    • Implementación

      • Primero, use Matlab para generar una biblioteca de trayectorias fuera de línea para simular la trayectoria que el robot puede caminar en el futuro
      • Luego, para el espacio cubierto por todas las trayectorias, calcule la probabilidad de que todos los puntos (a una determinada resolución) dentro de él colisionen con todas las trayectorias
      • Después de dicho cálculo fuera de línea, se puede obtener la relación correspondiente entre los puntos 3D y las trayectorias en un espacio.
      • Durante la operación en tiempo real, una vez que hay un obstáculo en un punto determinado del espacio, se sabe de inmediato qué trayectorias se verán afectadas y se reducirá la probabilidad de seleccionar estas trayectorias como la ruta final.
    • Modele los caminos como muestras de Monte Carlo y elija el conjunto de caminos con la mayor probabilidad de alcanzar la meta
    • Debido a que una gran cantidad de cálculos se llevan a cabo fuera de línea , cuando se ejecuta en línea, solo se necesita seleccionar una trayectoria libre de colisiones en tiempo real El algoritmo puede planificar una ruta libre de colisiones y la más cercana al punto de destino en unos pocos milisegundos
    • ejemplo
      • Todas las líneas amarillas son las rutas locales libres de colisiones alrededor del robot en el momento actual ( generadas fuera de línea por Matlab ), y las rutas que causarán colisiones se han eliminado debido a la influencia de los obstáculos blancos .
      • En el proceso de navegación autónomo real, el módulo de evitación de obstáculos recibe el punto de referencia proporcionado por el algoritmo superior para guiar su conducción.

inserte la descripción de la imagen aquí

2.3.3 Análisis de la transitabilidad del terreno
  • método

    • Superponga y rasterice el mapa alrededor del robot , luego calcule la altura del suelo correspondiente a cada cuadrícula , luego calcule la altura de todos los puntos contenidos en estas cuadrículas en relación con el suelo y finalmente emita, y distinga el suelo de los obstáculos en función de estas alturas (Los puntos rojos en la siguiente figura representan áreas intransitables y las áreas cubiertas por puntos verdes representan áreas transitables)
  • Resultado: dos mapas topográficos

    • Mapa topográfico local de 10m x 10m (alta resolución)

      • Proporcionado para evitar obstáculos locales (planificación de rutas)
    • Mapa de terreno de 40m x 40m (baja resolución)

      • Proporcionado al algoritmo de planificación de nivel superior para usar
  • Detección negativa de obstáculos

    • Por lo general, LiDAR no puede ver estos obstáculos negativos ( ollas, hoyos, cuesta abajo, etc.)
    • Trátelo directamente como un lugar que el robot no puede ver y configúrelo como intransitable
    • Esta función está regulada por un parámetro en el sistema , que se puede activar o desactivar

inserte la descripción de la imagen aquí

2.3.4 Seguimiento de waypoints
  • Todos los waypoints usan el planificador local para planificar la trayectoria para llegar a este punto, por lo que estos waypoints están relativamente cerca del robot y se encuentran en un área accesible
  • Si el robot necesita llegar a un lugar relativamente lejano durante la operación real , se necesita un planificador de nivel superior en este momento para dividir el punto de ruta en muchos puntos de destino pequeños y guiar al robot para ir allí paso a paso.

inserte la descripción de la imagen aquí

2.4 Capa inferior

  • Compatible con algoritmos láser SLAM : LOAM, A-LOAM, LeGO-LOAM, LIO-SAM, LIO-mapping, FAST-LIO2, Faster-LIO

  • Configuración integrada: tome LIO-SAM como ejemplo (hay un enlace al disco de red de archivos de configuración completo a continuación)

    • stateEstimationTopic = /lio_sam/mapping/odometry
    • RegisteredScanTopic = /lio_sam/mapping/cloud_registered
    • flipStateEstimation = false
    • flipRegisteredScan = falso
    <!-- 文件路径: \autonomous_exploration_development_environment\src\loam_interface\launch\loam_interface.launch -->
    <launch>
      <node pkg="loam_interface" type="loamInterface" name="loamInterface" output="screen" required="true">
        <param name="stateEstimationTopic" type="string" value="/lio_sam/mapping/odometry" />
        <param name="registeredScanTopic" type="string" value="/lio_sam/mapping/cloud_registered" />
        <!-- 不同的slam算法发布的odometry以及registered cloud坐标系是不一样的,比如loam发布的点云坐标系是map_rot
            与我们使用loam_interface里发布出来的registered_cloud的坐标系map是差了一个旋转变换的
            这时候就需要flipRegiateredCloud设置为true,但是也有别的slam算法发布出来的点云和loaminterface发布的
            点云坐标系一致,那就不需要转换,参数就是false -->
        <param name="flipStateEstimation" type="bool" value="false" />
        <param name="flipRegisteredScan" type="bool" value="false" />
        <param name="sendTF" type="bool" value="true" />
        <param name="reverseTF" type="bool" value="false" />
      </node>
    </launch>
    

    state_estimation_setup_notes

    • Enlace: https://pan.baidu.com/s/1Z3c6xwHN-Xwzom-_PQ5bTg?pwd=25xc
    • Extraer código: 25xc
  • Precauciones

    • LiDAR se puede instalar horizontalmente o en cierto ángulo
    • Sin embargo, no se recomienda rotar el LiDAR , porque cuando aparece un obstáculo repentinamente, el tiempo de respuesta puede ser más largo debido a la frecuencia de actualización más lenta , lo que puede provocar colisiones y otros fenómenos.

inserte la descripción de la imagen aquí

2.5 Utilidades

2.5.1 Herramientas de visualización
  • Visualización selectiva en rviz: mapa de nube de puntos completo (punto blanco claro) , mapa de nube de puntos del área detectada (punto azul) , trayectoria del robot (curva de color) , volumen del área de detección, distancia de conducción, tiempo de ejecución del algoritmo, estos datos se almacenarán automáticamente en un archivo

inserte la descripción de la imagen aquí

2.5.2 Depuración basada en joystick
  • Propósito : Para separar el planificador de nivel superior de otras partes, reemplace el planificador de nivel superior con instrucciones humanas y también retenga las funciones de la capa intermedia y la capa inferior, para que el robot aún pueda evitar obstáculos en este momento.
  • efecto
    • Es conveniente depurar y depurar la capa media y la capa inferior sin considerar la interferencia de la capa superior
  • Permite al usuario cambiar fácilmente entre los modos manual, joystick inteligente y autónomo
  • Compatible con PS3/4, Xbox y joystick virtual

inserte la descripción de la imagen aquí

2.6 Integración de Plataforma Móvil Autónoma

  • Soporte completo para plataformas móviles diferenciales
  • Las plataformas móviles omnidireccionales son parcialmente compatibles, pero la capacidad de movimiento lateral se ignorará y solo se usará como plataformas móviles diferenciales.
  • No es compatible con plataformas móviles para automóviles basadas en la dirección Ackerman (principalmente no es compatible con entornos estrechos )

inserte la descripción de la imagen aquí

3. Aplicación del sistema de navegación autónomo

3.1 Desafío subterráneo DAPPA

  • Involucrando túneles, espacios urbanos subterráneos y cuevas
  • La ejecución del comportamiento y la colaboración de varios robots se amplían en el marco del sistema de navegación autónomo (recuadro amarillo en la figura a continuación)
  • Debido a que hay algoritmos de planificación/exploración de ruta global/de alto nivel en el sistema que pueden manejar el problema de bucle invertido , la integración subyacente no necesita proporcionar algoritmos de estimación de SLAM/estado con bucle invertido (porque el módulo local para evitar obstáculos y el módulo TTA solo consideran la proximidad del robot) información del área)

inserte la descripción de la imagen aquí

  • El sistema de navegación autónomo de la competición utiliza el algoritmo de exploración TARE y el algoritmo de planificación de trayectos FAR
    • El punto azul es el punto de inicio (start), y end representa el punto final del área restante para ser explorada por el robot
    • Ejemplo: el robot primero alcanza el punto A a través del algoritmo de exploración TARE, y luego el operador envía un punto objetivo en el punto B, por lo que el robot cambia al algoritmo de planificación de ruta FAR para alcanzar el punto B, y luego cambia a la exploración TARE algoritmo para completar el resto después de llegar a la tarea de exploración del punto B

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

3.2 Mattport3D y AI Hábitat

  • El sistema de navegación autónomo admite el desarrollo y la aplicación en un entorno de simulación
  • Mattport3D es una colección de una serie de modelos de simulación , incluidos 90 modelos construidos a partir de habitaciones reales, la apariencia es muy realista y estos modelos también contienen información semántica , que puede representar imágenes RGB, de profundidad y semánticas en tiempo real a través de la IA . Motor de simulación de hábitat (este Los tres tipos de imágenes no se utilizarán en el sistema de navegación autónomo)

inserte la descripción de la imagen aquí

4. Ejemplo de aplicación de expansión del sistema

4.1 Aprendizaje autosupervisado para navegación Vision/LiDAR

  • Ejecute este conjunto de algoritmos de navegación autónomos en el entorno de simulación Mattport3D y AI Habitat (que proporciona tres imágenes de RGB, profundidad y semántica) y combine la salida del sistema de navegación con estas tres imágenes para entrenar la red neuronal.Después del entrenamiento teórico, la red neuronal La salida del algoritmo de navegación se puede simular solo en función de la salida de la imagen . La ventaja de esto es que puede deshacerse de la dependencia de LiDAR (porque el algoritmo de navegación necesita LiDAR para un posicionamiento preciso , pero después de entrenar la red neuronal red, teóricamente solo se necesita una cámara para dar robot para lograr un efecto similar )
  • Puede admitir la adaptación de simulación a real ( simulación a real )
    inserte la descripción de la imagen aquí

4.2 Navegación de iniciativa mixta con interacción humana

  • Aprovechar los modelos de casas 3D de Matterport con verdad semántica
  • Navega usando un sistema de navegación autónomo para generar datos de entrenamiento

inserte la descripción de la imagen aquí

4.3 Navegación social en entornos concurridos

  • La configuración de la glorieta debe modificarse para insertar modelos para peatones
  • El verdadero valor de los peatones puede simplificar algunos problemas en la simulación

4.4 Aplicación de Robots Agrícolas

Aplicación de FAR Planner en Robot Agrícola

  • La escena del huerto se construyó en el entorno de simulación, primero se simuló en el entorno de simulación y luego se usó en la escena real.

inserte la descripción de la imagen aquí

5. Demostración de simulación e introducción a la interfaz

  • Interfaz de simulación del entorno de desarrollo
    • RegScan
      • Indica el rango que el sensor LiDAR puede ver cuando el robot está parado ( escaneo registrado )
    • generalMapa
      • Proporcionar un mapa global para que la gente lo vea, es decir, el fondo de contorno blanco en la Figura 1 a continuación ( los robots/sensores no conocen este mapa global )
    • ÁreaExplorada
      • Indica el área que se ha explorado y se está explorando ( el área azul en la Figura 1 a continuación )
    • Trayectoria
      • Indica la trayectoria del robot ( la curva de color en la Figura 1 a continuación )
    • TerrenoMapa
      • Representa un mapa topográfico local de 10 × 10 m (alta resolución), que se proporciona para evitar obstáculos locales (planificación de rutas), como se muestra en la Figura 2 a continuación
    • TerrenoMapaExt
      • Representa un mapa topográfico de 40x40 m (baja resolución), que se proporciona al algoritmo de planificación de nivel superior, como se muestra en la Figura 3 a continuación ( estableciendo un umbral de altura relativo al suelo para determinar si es posible pasar, donde el rojo es un obstáculo, verde es terreno transitable )

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

  • Interfaz de simulación FAR Planner
    • Dado artificialmente un Goalpoint , puede continuar intentando (Intentable) y prueba y error en un entorno desconocido. Cuando se dirige a un camino equivocado, necesita una replanificación rápida, obtenga un camino óptimo basado en la información conocida e implemente
    • guardar leer
      • Guarde el V-Graph que se ha explorado y lea el V-Graph guardado anteriormente
    • Planeación Intentable
      • Si no está marcada, el sistema solo planificará la ruta del entorno conocido de forma predeterminada (no probará las áreas desconocidas) y cambiará automáticamente a la planificación en el modo Intentable cuando el Goalpoint se coloque en un área desconocida.
    • Actualizar gráfico de visibilidad
      • El algoritmo proporcionará el V-Graph global ( el archivo .vgh en la carpeta de datos ) que se ha explorado en cada entorno , simplemente léalo y realice rápidamente las operaciones de planificación y navegación. En este punto, puede desmarcar el Gráfico de visibilidad de actualización (si el entorno es dinámico, debe marcarlo para lograr la actualización)

inserte la descripción de la imagen aquí

Parte Ⅲ Instalación y Operación de Algoritmos

información previa

  • 支持 Ubuntu 18.04 con ROS Melodic y Ubuntu 20.04 con ROS Noetic
  • Actualmente solo es compatible con la arquitectura AMD64, no es compatible con la arquitectura ARM

1. Entorno de desarrollo de exploración autónomo

# 1. 安装依赖
$ sudo apt update
$ sudo apt install libusb-dev

# 2. 克隆源码
$ git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git

# 3. 分支检查与编译安装
$ cd autonomous_exploration_development_environment
$ git checkout melodic # Ubuntu 20.04 则将 melodic 替换为 noetic
$ catkin_make

# 4. 通过脚本安装仿真环境
$ ./src/vehicle_simulator/mesh/download_environments.sh

# 5. 启动开发环境
$ source devel/setup.sh
$ roslaunch vehicle_simulator system_xxx.launch
# xxx 可替换为对应的 5 种环境之一:campus、forest、garage、indoor、tunnel
# 案例:发送一系列 waypoint,同时发送导航边界和速度,车辆在跟踪 waypoint 的同时在边界内行驶(另开一个终端)
$ cd autonomous_exploration_development_environment
$ source devel/setup.sh
$ roslaunch waypoint_example waypoint_example_garage.launch

2. TARE (Tecnologías para la exploración robótica autónoma)

# 1. 克隆源码
$ git clone https://github.com/caochao39/tare_planner.git

# 2. 编译安装
$ cd tare_planner
$ catkin_make

# 3. 启动开发环境
$ cd ~/autonomous_exploration_development_environment
$ source devel/setup.sh
$ roslaunch vehicle_simulator system_xxx.launch
# xxx 可替换为对应的 5 种环境之一:campus、forest、garage、indoor、tunnel
# 4. 启动 TARE(另开一个终端)
$ cd ~/tare_planner
$ source devel/setup.sh
$ roslaunch tare_planner explore_xxx.launch
# xxx 可替换为对应的 5 种环境之一:campus、forest、garage、indoor、tunnel

3. Planificador LEJOS

# 1. 克隆源码
$ git clone https://github.com/MichaelFYang/far_planner

# 2. 编译安装
$ cd far_planner
$ catkin_make

# 3. 启动开发环境
$ cd ~/autonomous_exploration_development_environment
$ source devel/setup.sh
$ roslaunch vehicle_simulator system_xxx.launch
# xxx 可替换为对应的 5 种环境之一:campus、forest、garage、indoor、tunnel
# 4. 启动 FAR Planner(另开一个终端)
$ cd ~/far_planner
$ source devel/setup.sh
$ roslaunch far_planner far_planner.launch

Parte Ⅳ Sistema de Integración en Robot Real (continuará…)

Parte Ⅴ Anotación de algoritmos (continuará…)

Supongo que te gusta

Origin blog.csdn.net/qq_42994487/article/details/130307410
Recomendado
Clasificación