La semana pasada, descubrimos cómo funciona el legendario algoritmo de coordinación de la marcha BigDog. El robot aún no era autónomo y solo podía cruzar el terreno bajo el control del operador.
La mayoría de los lectores respaldaron por última vez la idea de una nueva traducción, sobre cómo BigDog aprendió a ir por el camino correcto al punto correcto y navegar en el espacio. Bueno, en realidad, aquí está. El sistema de navegación BigDog utiliza una combinación de escaneo láser plano, visión estéreo y percepción propioceptiva. Con su ayuda, se determina la ubicación del robot en el mundo circundante. Ella descubre obstáculos y los coloca en un modelo bidimensional del mundo. Luego, planifica el camino y controla que el robot siga el camino elegido. El planificador de ruta es una variación del clásico algoritmo de búsqueda A *. El algoritmo de suavizado procesa los resultados y los pasa al algoritmo de seguimiento de ruta. Calcula los comandos de dirección para BigDog.
El sistema descrito se probó en una zona forestal con muchos árboles, rocas y maleza. Además de los territorios planos, también tenía pendientes (ángulos de hasta 11 grados). Se realizaron un total de 26 pruebas, de las cuales el 88% tuvieron éxito. El robot "vio" el terreno dentro de un radio de 130 metros cuando se movía a una velocidad dada y superó más de 1.1 km.
Equipo
1) sensores propioceptivosSe usa para controlar la marcha BigDog y la navegación autónoma. Cada uno de los 16 grados de libertad activos y 4 pasivos del robot está equipado con un sensor. Proporcionan datos sobre la posición actual y la carga. Esta información se combina con los datos de la IMU para evaluar el estado de contacto con el suelo, la altura del cuerpo y la velocidad del cuerpo. Además, varios sensores indican el estado de los sistemas BigDog de propulsión, computación, hidráulicos, térmicos y otros.
Sensores BigDog: a) antena GPS; b) lidar; c) cámara estéreo de abejorro; d) Honeywell IMU; e) sensores conjuntos.2) sensores exteroceptivosEl robot está equipado con cuatro sensores externos: el lidar SICK LMS 291, la cámara estéreo Bumblebee PointGrey, el receptor GPS NovAtel y la IMU Honeywell. Los datos de ellos ingresan al sistema que se muestra en el diagrama a continuación.
3) computadorasPara implementar el sistema con el diagrama anterior, se utilizan dos computadoras. La computadora principal BigDog es una PC104 con un procesador Intel Pentium M de un solo núcleo (1.8 GHz). Interactúa con sensores propioceptivos, controla el equilibrio y el movimiento del robot, calcula el modelo actual del entorno y la ruta a través de él, y también controla la marcha.
La visión es proporcionada por una computadora separada con un procesador Intel CoreDuo (1.7 GHz). Se comunica con un par de cámaras, detecta inconsistencias, evalúa la odometría visual y admite un mapa de terreno en 3D. Esta computadora transmite el mapa y los datos de odometría visual a la computadora host a una frecuencia de 15 Hz a través de la red de área local a bordo.
La ventaja de dicho sistema es la capacidad de simplificar la tarea de planificación dividiéndola en dos partes. Los datos del LIDAR y los sensores son tridimensionales, pero podemos confiar en la autoestabilización del sistema de control de la marcha para abandonar la percepción y planificación 3D más complejas.
Enfoque técnico
En nuestro enfoque técnico general, utilizamos datos de dos sensores ambientales para detectar obstáculos, calcular la ruta a través o alrededor de los obstáculos y ordenar al sistema de control de marcha del robot que siga una ruta determinada.
Todo el proceso se puede dividir en tres etapas. Primero, las imágenes del lidar y la cámara se procesan para obtener una lista de puntos que indican obstáculos en el entorno. Luego, estos puntos se dividen en objetos disjuntos y se siguen durante algún tiempo. Además, estos objetos se combinan en la memoria temporal para el mapeo. Este cuadro se usa para planificar la dirección de viaje a un destino intermedio. El programador está diseñado para controlar que las trayectorias de BigDog estén a la distancia adecuada de los obstáculos y que las trayectorias sean estables en el espacio durante las iteraciones del programador. El algoritmo de movimiento a lo largo de una trayectoria dada obliga al robot a seguir la ruta prevista, enviando comandos de velocidad al sistema de control de la marcha. Ella alternativamente mueve las extremidades del robot.
A. Recolección de información
1) Evaluación de la situación.Hay dos fuentes de información odométrica: sensores cinemáticos en las piernas y un sistema de visión artificial. Los datos obtenidos de ellos se combinan para evaluar la ubicación del robot.
El sistema odométrico utiliza información cinemática de las piernas para calcular los movimientos del robot. Y el sistema de odometría visual monitorea las características visuales para calcular el movimiento. Ambas herramientas utilizan un módulo de medición de inercia (IMU) como fuente de información para la orientación espacial. Un medidor general combina la salida de estos dos odómetros, centrándose en la odometría visual a bajas velocidades y la cinemática a velocidades más altas. La combinación de estos dos indicadores elimina las deficiencias de cada uno de los contadores: la posible falla de los sistemas estéreo, la deriva de las lecturas del odómetro ubicadas en las extremidades mientras se ejecuta en su lugar, así como los errores de este sensor a lo largo del eje vertical.
El lidar utilizado en el robot BigDog produce una nueva imagen cada 13 milisegundos. Cada imagen se transforma en un sistema de coordenadas externo con el centro en la ubicación del robot. En este caso, se utiliza información sincronizada en el tiempo del contador de ubicación. La nube de puntos 3D resultante se transmite para su procesamiento mediante el algoritmo de segmentación descrito a continuación. Del mismo modo, el sistema de visión estereoscópica recopila mapas de no conformidad durante algún tiempo para crear un mapa de terreno en 3D en un cuadrado de 4 x 4 metros centrado en el robot. El filtro espacial determina las áreas de cambios significativos de altitud (es decir, obstáculos potenciales) y transmite una lista de puntos que pertenecen a estas áreas al algoritmo de segmentación de nubes de puntos.
2) Segmentación de nubes de puntos y seguimiento de objetosDebido a las irregularidades de la tierra y los movimientos del robot, parte de los datos del escáner lidar incluirán imágenes de la tierra. Los reflejos de los obstáculos largos (como las paredes) son similares en apariencia a los reflejos de la superficie de la tierra. Para una operación exitosa, el sistema debe interpretar estos reflejos de tal manera que pueda controlar el robot cerca de las paredes y no tener "miedo" de la tierra. El primer paso en este proceso es la segmentación de los puntos de obstáculos proporcionados por el LIDAR y el mapa del terreno en objetos separados. Las nubes de puntos 3D raras se segmentan en objetos fusionando puntos individuales separados por una distancia de menos de 0,5 metros.
Los objetos obtenidos gracias al algoritmo de segmentación se rastrean durante algún tiempo. Para realizar esta tarea, utilizamos un algoritmo iterativo codicioso con restricciones heurísticas. El objeto en la imagen actual coincide con el objeto más cercano de la última imagen, siempre que los objetos estén separados por una distancia de no más de 0.7 metros.
Debido al hecho de que las nubes de puntos se segmentan en objetos y se rastrean durante algún tiempo, el robot puede moverse adecuadamente en el entorno con desniveles moderados de la tierra y obstáculos de varios tipos: árboles, adoquines, troncos caídos, paredes. Los árboles y las paredes están determinados principalmente por un escáner lidar, y los adoquines y los registros están determinados por un sistema de visión estereoscópica.
Una secuencia de ilustraciones que muestran un robot (rectángulo amarillo) con: a) datos de un lidar (puntos azules) registrados en unos segundos; b) sus respectivas instalaciones. Los objetos marrones altos son árboles. Los reflejos del suelo se muestran transparentes y planos. El cilindro verde es el objetivo; la línea azul de la ruta calculada conduce a ella. c) Vista superior del cartograma: las áreas con el valor letal más bajo se indican en verde, y las áreas con el valor más alto se indican en púrpura. Cada unidad de cuadrícula corresponde a 5 metros.B. Planificación de la navegación.
Nuestro enfoque para resolver el problema de navegación es generalmente aceptado en la comunidad robótica. Los puntos de obstáculos (obtenidos debido a los procesos de percepción) se trazan en un cartograma con el centro en la ubicación del robot. El objetivo final del robot se proyecta en el límite del cartograma y se le aplica una variante del algoritmo A ∗. Este proceso se repite aproximadamente una vez por segundo.
1) Memoria de obstáculos rastreadosDebido al campo de visión limitado de los dos sensores del robot, es imperativo que el robot conserve una memoria precisa de los obstáculos que ya no puede ver. Dado que el sistema de seguimiento de objetos proporciona la lista de objetos, los objetos individuales se agregan, actualizan o eliminan en la memoria de objetos del sistema de planificación. El tamaño de la lista de objetos es limitado, por lo que cuando se le agregan nuevos objetos, se deben eliminar otros.
Denotando la lista actual de objetos de la variable O, podemos calcular dos subclases parametrizadas de O:
Aquí la edad (q) es la diferencia entre el tiempo actual y el tiempo de la última medición del objeto q,
norma (q, r) inf: la distancia mínima entre la ubicación actual del robot y el límite del objeto q.
Los objetos se eliminan de O mediante los siguientes criterios:- El conjunto {P (30) ∩ Q (15)} se resta de O. Se trata de objetos con una antigüedad superior a 30 segundos y ubicados a una distancia no inferior a 15 metros del robot.
- El conjunto {P (1800) ∩ Q (10)} se resta de O. Se trata de objetos con una antigüedad superior a media hora y ubicados a no menos de 10 metros del robot.
- Los objetos se eliminan de O cuando se alcanza el límite de la lista. La prioridad del objeto está determinada por el tiempo durante el cual el rastreador lo siguió con éxito. En otras palabras, los objetos que el robot "miró" más tiempo se almacenan más tiempo en la memoria.
- Sin embargo, no se descartan los objetos rastreados en los 10 segundos anteriores.
Esta asignación de recursos de memoria conduce al siguiente comportamiento: cuando los objetos abandonan el campo de visión de los sensores del robot, olvida los objetos eliminados y los objetos que no ha visto varias veces. No se olvidan los objetos a la vista o inaccesibles, pero ubicados cerca del robot.
2) Crear un cartogramaUtilizamos un cartograma creado sobre la base de una cuadrícula 2D para representar el entorno que rodea al robot. En lugar de crear dinámicamente un cartograma (a medida que el robot recibe nueva información ambiental), se compila un nuevo cartograma con cada iteración de planificación y se llena con objetos de la memoria del planificador. De ello se deduce que el planificador de ruta dinámico no se puede utilizar en lugar del algoritmo A *. Dado que suponemos que el tamaño de los objetos es limitado (que la ausencia de un callejón sin salida en el entorno es más de la mitad del mapa), el alcance de la tarea de planificación y el tiempo para calcular la ruta son pequeños.
El cartograma se llena con valores de la lista de objetos de acuerdo con el siguiente algoritmo:
A las celdas donde se ubican los objetos se les asigna un valor letal muy alto. El indicador de las celdas cercanas al objeto se establece de acuerdo con la función f, que tiene en cuenta la distancia actual a este punto. Para los resultados de la prueba presentados aquí, f era simplemente el cubo inverso de la distancia.
El efecto de este enfoque es que disminuye gradualmente desde las celdas con un valor muy alto a medida que se aleja de ellas (y de los objetos que designan).
3) Estabilidad del caminoPara asegurarnos de que no "controlamos" BigDog de manera aleatoria y no sistemática, se presta especial atención a la estabilidad de la ruta planificada. Debe ser lo más estable posible a través de iteraciones del planificador de ruta. Esto se proporciona de tres maneras.
En primer lugar, el punto de partida pasado al algoritmo A * no es la posición actual del robot, sino la proyección de su posición en el punto final de la ruta dada anteriormente por el algoritmo A * (llamemos a este punto p). Mientras BigDog siga el camino planificado, puede desviarse ligeramente de él de lado. Al proyectar el punto de partida sobre el punto del cálculo anterior del algoritmo A *, filtramos la fluctuación de la posición del robot y las rutas que muestra el planificador se vuelven más estables. Si el robot se desvía de la ruta más allá del valor establecido (por defecto es de 3 metros), el punto p simplemente se transfiere a la posición actual del robot.
En segundo lugar, para verificar la continuidad del planificador de ruta, calculamos q: la proyección de la posición del robot desde 2.5 segundos en el pasado hasta el último punto calculado por el algoritmo A *. Luego, el segmento de la última ruta planificada de qp se agrega al cálculo de la nueva ruta. Como resultado, el robot rastrea una pequeña distancia ya recorrida. Gracias a esto, el algoritmo para seguir el camino se muestra mejor con violaciones significativas de la posición, que a menudo encuentran los robots de pie.
En tercer lugar, parte del historial de las rutas planificadas se almacena en la memoria del robot. Estas rutas se utilizan para reducir los valores de las celdas del cartograma donde el robot ya se ha ido, al tiempo que aumenta el valor de las celdas en el área circundante. Por lo tanto, como regla, una nueva ruta planificada en la misma dirección repetirá la ruta ya recorrida por el robot (pero sin una garantía estricta de esto).
4) suavizado de rutaLa ruta calculada, ya que se basa en una cuadrícula regular, es un poco irregular. Los cambios significativos en la dirección pueden causar comandos de control no deseados. Para evitar esto, se aplica el algoritmo de suavizado de De Boer.
Además, la planificación de rutas basada en la red a menudo conduce a rutas técnicamente óptimas pero menos deseables hacia el objetivo. Resolvemos este problema calculando una ruta suavizada para cada iteración del planificador. Para las iteraciones posteriores, a las celdas del cartograma donde se ejecuta la ruta suavizada se les asigna un valor más bajo. Esto proporciona un camino más directo y suave hacia la meta.
C. Control de la marcha: movilidad y equilibrio.
El sistema de planificación de navegación determina una nueva ruta aproximadamente una vez por segundo. Un algoritmo para seguir una ruta que opera a una frecuencia de 200 Hz guía al robot de acuerdo con la última ruta planificada. Este algoritmo crea un conjunto de comandos en forma de velocidades corporales deseadas, que incluyen la velocidad de avance, la velocidad lateral y la velocidad de guiñada del cuerpo. Estas velocidades se transmiten al controlador de marcha, que controla el movimiento de las piernas.
En función de la distancia entre el robot y la ruta, se utiliza una de las tres estrategias. Si el robot se encuentra cerca de una sección del camino, comienza a moverse en diagonal hasta que entra por el costado, moviéndose a toda velocidad. Si el robot está lejos del camino, se dirige exactamente hacia el punto deseado. En una posición intermedia, se usa una combinación de estas estrategias.
Una descripción detallada de los algoritmos de control de la marcha está más allá del alcance de este artículo. Sin embargo, como regla general, las velocidades corporales actúan como entradas de control para los controladores de marcha BigDog de bajo nivel. El controlador de marcha produce comandos de fuerza y posición para cada articulación para garantizar la estabilidad, responde a anomalías y proporciona las velocidades corporales necesarias. Aunque los cálculos del algoritmo de investigador de ruta se pueden usar para cualquier marcha BigDog, el trote es óptimo debido a la velocidad y la capacidad de cruzar terrenos irregulares.
Resultados de la prueba de campo
El sensor y el sistema de navegación descritos anteriormente se instalaron en BigDog y se probaron fuera del laboratorio. Las pruebas se realizaron en un área donde había muchos árboles, rocas, maleza, colinas con pendientes de hasta 11 grados. La Figura 1 muestra ejemplos de paisajes. La figura 2 muestra los datos del LIDAR procesados por el robot.
Fig. 1. El terreno donde se realizaron las pruebas.Fig. 2. Pruebas, vista superior. Imagen recibida de cámaras LIDAR y estéreo. Las áreas oscuras son árboles y otros obstáculos. El tamaño de la malla es de 5 metros.El sistema de navegación y el planificador se desarrollaron durante un período de 7 meses, con pruebas regulares aproximadamente una vez cada cinco semanas. Los resultados de las últimas pruebas se describen aquí.
De las 26 pruebas realizadas, 23 terminaron con éxito: el robot alcanzó la meta, no encontró ninguno de los obstáculos y no estuvo cerca de esto. Los resultados de estas pruebas están marcados en la tabla dinámica como objetivo. El robot cayó al final de una sola prueba después de pisar una piedra pequeña. Por lo general, el sistema de control de la marcha hace frente a tales situaciones, pero no esta vez (el resultado está marcado en la tabla como Fall - "Fall"). En tres pruebas, el robot encontró grandes obstáculos (más de 20 metros de ancho). El robot calculó qué lado es mejor para sortear el obstáculo y no avanzó en un período de tiempo determinado (20 segundos). Los obstáculos de este tamaño van más allá del alcance para el cual se desarrolló un sistema autónomo. Los resultados de estas pruebas se indican en la tabla como Live-lock.

En estas 26 pruebas, el robot se colocó en escenarios bastante similares y en el medio del bosque. A medida que el entorno se vuelve más complejo, aumenta el número de resultados de Live-lock y el robot selecciona rutas menos eficientes.
Más interesante: en robo-hunter.com :
Nuestro canal de YouTube