Primero tengo una buena noticia para ti: la robótica es tanto de software como de hardware. No necesitas hacer el robot – algunas personas con una buena formación en EE o ME lo harán mejor que tú, pero para hacer que este hardware haga cosas buenas de forma autónoma necesitas un software complejo que trate con todos los sensores y actuadores, fusione su información para dar sentido a los datos a un nivel semántico y luego lo convierta en comandos para los actuadores. Y créeme, tanto si lo miras a nivel de decisión de bajo nivel como si lo miras a nivel de decisión de alto nivel es una tarea difícil.
Mi formación es también en CS: Verificación y validación, Representación del Conocimiento e Inferencia fueron los temas que estudié más a fondo hasta que me moví en arquitecturas robóticas para mi doctorado.
El software robótico es un gran dominio que reúne de diferentes campos relacionados con CS.
El más natural y a menudo directamente aplicable es la teoría de control: en este dominio se intenta implementar una ley de control que cierre el bucle de bajo nivel entre la información que se tiene (posición y velocidad de 6 DOF de un dron por ejemplo) en los comandos que mejor permitan seguir una trayectoria. Hay mucha optimización lineal involucrada en esto y se necesita una buena base de matemáticas. Cualquier robot que se mueva -ya sea un vehículo o un brazo- tendrá en su nivel inferior un bucle de control que tiene sus raíces en este campo.
El procesamiento estocástico y el razonamiento también están ahí arriba. Dado que los datos de detección son a menudo ruidosos y el resultado de los comandos es incierto, el uso de la representación estocástica en el nivel intermedio, ya sea para anclar la percepción ruidosa en conceptos fundamentados o para decidir la acción menos arriesgada/más prometedora para evitar el fracaso/alcanzar un objetivo local, es una necesidad. Inteligencia Artificial: Programming a Robotic Car, el curso de S. Thrun en su propio sitio web trata de todo esto — todas las técnicas que presenta están relacionadas de una manera u otra con los procesos gaussianos y la inferencia estocástica. Este curso también está dirigido a las personas que tienen una buena formación en CS por lo que debe ser cómodo con él.
Tener cualquiera de estos 2 te hace bien equipado en la forma en que la industria percibe un robot automatizado / «autónomo» hoy en día. Ir más allá requerirá que explore problemas de toma de decisiones de nivel superior o arquitectura de software para sistemas robóticos. La toma de decisiones de alto nivel implica que algunos conceptos presentados en el curso de Thrun se conviertan en conceptos más abstractos. Por ejemplo, la planificación de trayectorias que presenta sigue siendo bastante sencilla, ya que un coche tiene relativamente pocos grados de libertad. Si se intenta hacer la planificación de la trayectoria en un sistema más complejo, como un brazo robótico o incluso un robot humanoide, es necesario explorar una técnica más avanzada. El libro de Steve Lavalle es un buen material para ello (Algoritmos de Planificación / Planificación de Movimiento que está disponible gratuitamente en el enlace). Tenga cuidado de que esto comienza a ser un material avanzado frágil y no trata el problema de la integración de estas técnicas dentro de un bucle de control.
Mi preferencia personal va a la planificación y ejecución de tareas de alto nivel, ya que es mi propio campo 🙂 Esto incluye la planificación clásica preferentemente con representación de tiempo y recursos o la planificación probabilística que trata con representaciones similares a la proporcionada por Thrun. La mayor parte del trabajo está relacionado con los algoritmos de búsqueda, quizás un poco de teoría de juegos y mucho de arquitectura de software. Esto es todavía bastante lejos para ser realmente útil al lado de la experimentación a nivel de doctorado sin embargo.
Espero que esto ayude.
EDIT: Tengo que mencionar que el campo que di están relacionados con mis propios intereses con el creciente nivel de abstracción del bucle de control de bajo nivel a la toma de decisiones de alto nivel con un fuerte énfasis en la toma de decisiones. Hay otros campos más relacionados con la percepción que son relevantes para la robótica: el procesamiento de señales, el aprendizaje automático, la fusión de la información (estocástica o de otro tipo) que puede relacionarse con el SLAM y la lista podría seguir y seguir, mientras que yo los conozco a alto nivel prefiero dejar que otros den indicaciones más precisas.