No solo es posible, sino que puede (y se sabe que) proporciona buenos efectos sinérgicos y multiplicadores para el equipo que involucra a personas con experiencia profesional en desarrollo de software. Sin embargo, en mi experiencia, lo que los desarrolladores de software necesitan trabajar duro para comprender, y más allá de eso, comprender intuitivamente y crear el paradigma de encuadre tácito de su trabajo futuro en robótica es:
La naturaleza dura en tiempo real de los sistemas controlados por computadora y otros sistemas muestreados.
En el infierno o en aguas altas, debe haber un valor binario, pasar al convertidor D / A y convertirse en una cantidad de energía eléctrica, en términos de voltaje o corriente (y luego amplificado a efectos útiles), en cada tiempo de muestra . Sin problemas de priorización, colas, hilos, procesos, apretones de manos, las optimizaciones deben comprometer eso. Y el hardware (la etapa de conversión D / A de la computadora al mundo físico) funciona de manera tal que básicamente obedece este principio. Si la parte del software no logró llegar a tiempo para cargar en el búfer de la etapa de interfaz D / A, el valor que se suponía que era el resultado del algoritmo de control a tiempo para que el D / A lo disparara hacia La parte del amplificador / efector de potencia del circuito de retroalimentación, mala suerte. Creará problemas para la calidad del control. Especialmente si resulta ser una ocurrencia regular.
Gran parte de la naturaleza hacky de los algoritmos de control y la “fealdad” desde el punto de vista de los desarrolladores de software se debe a que en el control de procesos en tiempo real como robots, simplemente no hay tiempo. No hay tiempo para aplicar capas tras capas de abstracciones, patrones de diseño, contenedores, dequeues, etc. No hay tiempo para preocuparse por la consistencia eventual, o la actualización de las máquinas de estado, o lo que sea. En general, el diseño de algoritmos de control para sistemas ciberfísicos es una disciplina de software-hardware mucho más holística que el diseño de software abstracto puro, UML y la normalización de formas.
Dicho esto, los desarrolladores de software que no solo entienden, sino que graznan , intuyen y adoptan (como lo hizo Batman, según Bane), esta restricción y marco resultarán en un código hermoso, optimizado y claro, robusto a errores que pueden funcionar por billones, billones y pentillones de ciclos.
Retroalimentación y análisis dinámico.
El mundo de toda la automatización, incluida la robótica, es un mundo de retroalimentación y análisis de su dinámica (retroalimentación) y de su control. En mi Alma Mater, es significativo que una de las primeras, aunque ligeras diferencias, que solía delinear futuros desarrolladores de software y personas informáticas, desde personas de electrónica industrial y automatización incluso antes de la elección formal de sus especializaciones, fuera qué tipo de curso de matemáticas estaban obligados a completar en su tercer año. De manera reveladora, el primero tenía que hacer Matemática discreta, mientras que el primero tenía que hacer Matemática numérica y Análisis matemático III (todos tenían que hacer I y II por igual). El concepto teórico más importante en toda la automatización, incluida la robótica, es el comportamiento estabilizador a través de una retroalimentación negativa, en oposición al comportamiento desestabilizador de una retroalimentación positiva. Y el reconocimiento de que la naturaleza de una retroalimentación, desde el algoritmo de control que se ejecuta en la computadora, a través del convertidor D / A, el amplificador y / o efector de potencia (generalmente motores), la planta (el robot, es decir, sus componentes físicos que se mueven ), el sensor (convirtiendo cantidades físicas como aceleraciones, velocidades, posiciones, longitudinales o rotacionales, en cantidades eléctricas), y el convertidor A / D y el sistema de muestreo (convirtiendo las cantidades eléctricas en números binarios en las memorias intermedias de la computadora accesibles para el algoritmo de control), no es fijo . Para algunos fenómenos dinámicos, exactamente la misma configuración física y eléctrica producirá una retroalimentación positiva, mientras que para fenómenos dinámicos más lentos la retroalimentación habrá sido negativa.
Existe un cierto cuerpo de conocimiento (funciones racionales, transformadas de Laplace y Fourier, mapeo y análisis de polos cero, análisis complejos y series complejas, teoría de filtrado, teoría de estimación, etc.) que ayuda a los robotistas a determinar las propiedades dinámicas de sus controladores ( algoritmos de control) y ayudan a sintetizar las características requeridas del controlador a partir de los requisitos sobre el rendimiento dinámico del robot. Los desarrolladores de software generalmente tienen una brecha en el conocimiento a este respecto, y necesitan hacer la debida diligencia para ponerse al día y aprender a pensar en términos de ecuaciones de diferencia y funciones de transferencia. Una vez que lo hacen, se convierten en desarrolladores expertos de solucionadores, simulaciones y clases de análisis numéricos, objetos y funciones eficientes y numéricamente estables.
Argumentos de clausura
A medida que se aleja de la máquina física hacia las capas de supervisión y visión general de una planta de robótica típica o un centro de comando de vehículos, estas brechas típicas en el conocimiento de los desarrolladores de software con capacitación clásica se vuelven menos pronunciadas y menos críticas, y su entrenamiento y cuerpo profesional de conocimiento se vuelve más importante para la tecnología y las plataformas empleadas. También es cuestión de que los líderes de los equipos de robótica sean conscientes de la diferencia en la capacitación y la experiencia de los robotistas capacitados en automatización, mecatrónica, electrónica y desarrollo de software en su equipo, y consideren la superposición inexacta de habilidades y existencia de las brechas de conocimiento no son fallas fundamentales del equipo, sino obstáculos que deben superarse. Una forma particularmente valiosa de superar estos obstáculos es hacer que el equipo participe en el aprendizaje en el trabajo, separándose mutuamente y siendo mentores y aprendices entre sí en las habilidades adecuadas. De este modo, el equipo también experimentará la ganancia inesperada de una mayor homogeneidad, el respeto mutuo de los miembros del equipo entre sí y el espíritu de cuerpo . Tales líderes de equipo deben recordar que, mientras que el reverso de la moneda con la que se han desembarcado es lagunas potenciales de conocimiento, el anverso de la misma moneda es una mayor cobertura del terreno total de habilidad técnica al tener una composición interdisciplinaria del equipo.