¿Cuáles son algunos algoritmos y estructuras de datos relevantes para la robótica?

No estoy seguro de las estructuras de datos involucradas, pero esta es mi opinión sobre los algoritmos.

Como se trata de un robot móvil y mencionan “planificación de movimiento”, algunos algoritmos relevantes probablemente incluirían un uso extenso de los filtros bayesianos . La regla de Bayes tiene algunas aplicaciones muy interesantes para la robótica; implica comprender lo que está sucediendo aquí:
Aquí está resolviendo una creencia en cierta cantidad, que podría ser un mapa o una ubicación. Es más fácil de entender si divide la expresión anterior en 2 partes.

  1. El primer paso es todo después, e incluso, la integral. Básicamente significa “Toma lo que ya sabemos y tratemos de adivinar cómo se verá en un momento”.
  2. El segundo paso es todo antes de la integral. Básicamente significa “Hagamos nuestra conjetura de la última vez y hagámoslo un poco mejor leyendo los datos de nuestro sensor”

Este algoritmo simple tiene muchas extensiones muy importantes. Dado que esa publicación de trabajo menciona moverse a través del terreno irregular, el robot necesita una forma de identificar ese terreno. Los algoritmos relevantes, que pueden derivarse de la Regla de Bayes anterior (¿qué tan genial es eso?) Pueden ser:

  • Filtros lineales de Kalman (algoritmo para un sistema lineal)
  • Filtros Kalman extendidos (algoritmo para un sistema no lineal)
  • Filtros Kalman sin perfume (algoritmo para un sistema no lineal)
  • Filtros de información (funciona mejor que el filtro de Kalman en el paso 2 anterior, más lento en el paso 1, pero hace lo mismo básico)
  • Filtros de histograma (haga un histograma 2D, 3D, 4D, etc. de algo)
  • Filtros de partículas (use los métodos de Monte Carlo, también conocidos como material aleatorio; el algoritmo más popular)

Todos estos son algoritmos que pueden ayudar a resolver el enorme problema SLAM general, que puede ser una gran parte de la publicación de ese trabajo. SLAM es como un catch-22. Considere esto: cuando un robot intenta construir un mapa, usa información sobre dónde está o localización. Cuando un robot intenta localizar, utiliza un mapa. Pero, ¿cómo puedes hacerlo sin el otro? Ese es el problema de SLAM, y con eso ayudan todos estos algoritmos.

Resolviendo la mitad de SLAM usando un filtro de partículas
Aquí trabajan en la primera mitad de SLAM: averiguar dónde está el robot.

Resolviendo la otra mitad de SLAM usando un filtro Kalman
Aquí trabajan en la segunda mitad de SLAM: mapeo.

Sensores
Para algunos tipos de sensores, un PID (Controlador Derivado Integral Proporcional) puede ser ideal. Es un controlador que mejora las lecturas de sus sensores, consulte wikipedia: (http://en.wikipedia.org/wiki/PID…).

Texto
Si realmente está interesado en aprender más sobre esto, entonces el texto Probabilistic Robotics (http://mitpress.mit.edu/catalog/…) de Sebastian Thrun es prácticamente todo lo relacionado con la robótica móvil. Pero tenga en cuenta que SLAM es probablemente solo una parte de lo que se trata la publicación de trabajo; Probablemente haya un montón de cinemática, sistemas de control, etc.

La persona que obtiene ese trabajo probablemente tendrá una base sólida en todas estas áreas y mucho más. Las personas que trabajan en Boston Dynamics son bastante inteligentes.

John O’Hollaren lo hizo bien. Solo agregaría que comprender cómo manejar eficientemente conjuntos de datos masivos será esencial para cualquier cosa que navegue en el mundo exterior.

En serio, comience a trabajar con Khan Academy para estas cosas, y luego vea si puede tomar un curso o dos en Udacity.

Dado que es un trabajo de “ingeniero de percepción” y no un trabajo de “visión por computadora”, entonces también debe participar en la conversión de puntos de datos en bruto en objetos que pueden ser manipulados mentalmente. El término para esto es Reificación ( http://en.wikipedia.org/wiki/Rei …). Básicamente, esto significa detectar un montón de píxeles gris-marrón en una columna vertical y saber que es algo que podría convertir en registros si tuviera las herramientas adecuadas.

No puedo discutir con la perspectiva de Tom Allen, pero entiendo querer saber qué se necesitaría para OBTENER ese tipo de trabajo para darle alguna dirección.

Con respeto, si no sabe cuáles son relevantes, no obtendrá este trabajo. (Lo siento, siento que debería aclarar esto, de ninguna manera estoy sugiriendo que te rindas, solo que este trabajo es pedir a alguien que ya haya dominado estas habilidades, no alguien que pueda repasarlas en las semanas previas. entrevista. Ser capaz de comprender e implementar estos algoritmos / estructuras de datos es una cosa. Ser capaz de saber cuándo y por qué son apropiados es otra).

Para responder realmente la pregunta fuera del contexto de este trabajo en particular, querrá comprender algoritmos de planificación discretos y continuos; A *, D *, algoritmos en cualquier momento, RRT, PRM, redes de estado, enfoques primitivos de ruta, etc. En cuanto a las estructuras de datos; debe conocer los gráficos en detalle: ¿cuáles son las compensaciones entre las matrices de adyacencia y las listas? ¿Debería almacenar los pesos de los bordes por adelantado o calcularlos sobre la marcha? ¿Debería eliminar los bordes no válidos o simplemente anular el peso? El conocimiento de árboles, montones, árboles rojo-negros y hashmaps ciertamente ayudará.