¿Cómo puede un ingeniero de software encontrar trabajo en el campo de la robótica? Estudié ingeniería eléctrica e informática y trabajé como ingeniero de software. Tengo experiencia con sistemas embebidos y programación en el entorno Linux kernel / userspace.

Mi respuesta es principalmente de apoyo de la respuesta dada por “Anónimo” que comienza con “Intentar aplicar primero en las startups que trabajan en Robótica“.

La visión por computadora y el aprendizaje automático son dos componentes de los sistemas robóticos que no requieren mucho hardware. Uno puede argumentar que puede ser increíble en esas dos cosas con solo una computadora portátil con cámara web (para alguna programación) y algo de papel (para las matemáticas inevitables que encontrará en Robótica).

Si desea trabajar en un entorno de I + D, deberá poder leer y comprender trabajos de investigación. Las habilidades matemáticas serán de suma importancia aquí, y muchos “programadores” son flojos cuando se trata de matemáticas.

Definitivamente tendrás que ensuciarte las manos. Pero si no tiene mucho que mostrar en un currículum que indique que realmente se ensució (¡y construyó algo!), Entonces tendrá dificultades para encontrar un trabajo. Con las herramientas de hoy, es muy fácil comenzar a construir cosas, presumir su trabajo y, en última instancia, conseguir un trabajo increíble.

OpenCV es un excelente lugar para comenzar con algunas bibliotecas y herramientas de visión por computadora.
Github es un gran lugar para buscar código, compartir código y aprender los fundamentos de git que serán muy valiosos cuando trabaje con un equipo.

Intenta postularte primero en startups que trabajan en robótica. Tienes un conjunto variado de habilidades que serán realmente útiles. Le pido que presente su solicitud porque también existe la posibilidad de que intente hacerse una idea de estas nuevas empresas sobre qué otra cosa podría necesitar de un solicitante que podría ayudarlo a tomar el camino correcto.

Consigue un poco de hardware propio. Obtén un Kinect simple. Obtén OpenCV y comienza a trabajar en él . Encontrará numerosas declaraciones de problemas / algoritmos / proyectos en línea que se pueden hacer solo con Kinect. Esto le dará una idea de la visión por computadora. Si eres bueno con los algoritmos y tal, entonces no tendrás ningún problema con esto.

Próximo paso. Si puede, intente construir un robot propio . El motivo es simple. Cuando trabajas en cualquier tipo de robot desde cero, la parte difícil es la integración de software / hardware. Trabajar en un robot que haya hecho lo ayudará a comprender los conceptos relacionados con la obtención de información de los sensores y su uso para mover el robot . Este es un buen método para entrar en la robótica.

Ve a ver a ROS. Es posible que el sistema operativo del robot no sea relevante para entrar en la “industria” porque todavía no está tan extendido. Pero es un buen comienzo. ROS lo ayudará a acostumbrarse a trabajar con diferentes paquetes y marcos que pueden usarse para hacer que un robot haga algo. Es muy útil. Y también puedes contribuir a él, lo que aumentará tu perfil. La otra cosa es que puedes comprar tu propio hardware como el Home – TurtleBot, y utilizar ROS en eso. Navegación básica, planificación de ruta avanzada y tal se puede hacer. O simplemente puede trabajar en simulaciones y aún así aprender más.

Estas son solo algunas formas que pueden guiarlo. Al final, debe centrarse en el lado de la robótica en el que desea ingresar y solicitar puestos de trabajo basados ​​en eso. Las startups buscarán personas como usted, pero es realmente útil si ha trabajado en algo propio. Como mínimo, comience a investigar (sin un orden en particular):

  • Algoritmos de planificación de movimiento y trayectoria
  • Algoritmos básicos de visión artificial: segmentación de imágenes, reconocimiento, detección de objetos y demás.
  • Algoritmos de aprendizaje automático: se pueden aplicar a los datos de Computer Vision
  • Conceptos de inteligencia artificial, que también están cubiertos por los puntos anteriores, pero son útiles.
  • Cómo funciona realmente un robot: cómo se mueve, conceptos relacionados con la cinemática y la dinámica, cómo funcionan los sensores y cómo se obtienen datos de ellos y demás.

Tendrás que ensuciarte las manos.

  1. Crea un blog sobre robótica.
  2. Google “Temas más importantes en robótica”
  3. Lea algunos de los artículos sugeridos y escriba un par de artículos.
  4. Luego haga una lista de todas las personas importantes en robótica. (Sugerencia: el primer artículo que Google sacó para mí del paso 2 fue las 15 personas más importantes en robótica)
  5. Crea una lista de preguntas de la entrevista
  6. Póngase en contacto con las personas importantes y pregúnteles si podría entrevistarlas para su blog.
  7. Pon las entrevistas en el blog
  8. Contáctelos 2 semanas después y agradézcales por la entrevista y haga algunos comentarios específicos y válidos sobre cualquiera de sus respuestas.
  9. Prepárate para moverte. Es muy poco probable que una empresa de robótica esté sentada a la vuelta de la esquina. Entonces, si quieres trabajar en robótica, tendrás que moverte

Gracias por la A2A

Realmente no tendrás un problema con el idioma. Lo más probable es que sea C o algo tan simple como C. Eso, por supuesto, si estamos hablando de Microcontroladores o Arduinos.
También prefiero el enfoque basado en proyectos, así que te diré lo que hice para sumergirme en ese mundo por un tiempo.

  1. Pruebe proyectos simples como controlar leds o leer datos de diferentes sensores.
  2. Si no tiene ideas propias que quiera probar, busque proyectos de Arduino en Instrucciones de cómo hacer bricolaje. Realmente aprendí todo lo que sé ahora desde allí.
  3. Todos los consejos y trucos con respecto al diseño del circuito o por qué las personas eligieron ese valor o este componente, lo entenderá todo si practica lo suficiente. Mientras más practiques y pruebes cosas diferentes, más aprenderás.
  4. Tendrás que ensuciarte las manos y sufrir con el hardware al principio. A menos que tengas un buen amigo que pueda ayudarte con estas cosas 😀

Realmente vale la pena

Buena suerte

Pasos:

1. Aprende ROS
2. Envíame un mensaje.

Mi cofundador y yo estamos comenzando la primera compañía de software de robótica enfocada en resolver el problema de control inteligente de la robótica. Estamos buscando activamente ingenieros de software apasionados por el potencial de la robótica. Estamos en el MIT en Cambridge, MA.

-Kody

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.

Oye,
También comencé a trabajar en robótica trabajando en varios microcontroladores y proyectos basados ​​en sistemas integrados. Actualmente soy estudiante de MS en IIIT, Hyderabad y estoy afiliado al Robotics Research Center, uno de los mejores laboratorios de la India. Algunas cosas importantes que me gustaría mencionar son:

1. Desde el punto de vista teórico, dos de los conceptos más importantes que necesita en robótica son Álgebra lineal y Probabilidad. Visión por computadora, aprendizaje automático, sistema de control, todos requieren un buen control del álgebra lineal. Para eso, puede ver el video de Gilbert Strang en youtube o leer su libro Linear Algebra y sus aplicaciones. Una vez que tenga dominio del álgebra, puede comenzar a trabajar en la visión o el aprendizaje.
Como en robótica tratamos con mucha incertidumbre, con respecto al estado del robot o las lecturas de los sensores, la probabilidad se vuelve crucial. Para eso puedes seguir el libro llamado Probablistic Robotics de Sebastian Thrun.
2. Como ya se mencionó, ROS es muy importante, pero para abrazar su belleza se necesita una plataforma robótica estándar para poder probar diferentes paquetes.
3. Considerando las conferencias en video, hay un curso sobre robótica móvil por Magnus Egerstedt en Coursera. He escuchado que es realmente bueno.

Si tiene más preguntas, envíeme un mensaje.

Yo mismo trabajo en un mundo corporativo como ingeniero de software y hasta ahora no he hecho nada en el campo de la robótica. Pero pero pero, siempre hay esperanza. Nunca es demasiado tarde para nada. Mi compañía tenía un grupo similar de entusiastas como usted y comenzaron un club dentro del campus con el respaldo de los empleadores. Encuentran tiempo y dedican mucho tiempo a este club. Comenzaron a crear cosas pequeñas. Y ahora usando computadoras como “FRAMBUESA PI” y “ARDUINO”, están creando obras maestras. Su entusiasmo también me llevó al club. Ahora conocidos como MAKER’S LAB, han pasado de ser simplemente robóticos a hacer todo. Llevan a cabo talleres todos los fines de semana y en cualquier otro momento posible, y fomentan la conciencia social y se enfocan en niños pobres y estudiantes rurales.

Creo que probablemente deberías seguir adelante y comprar un “PI FRAMBUESA” ya que es barato y experimentable. Puedes hacer muchos experimentos. Hay revistas y ayuda en línea para comenzar y probablemente pueda replicarlas y luego seguir adelante, puede inculcar sus propias ideas en su robot.

También un amigo mío es un gran innovador. Como ingeniero mecánico y aterrizó en TI, desde el principio quiso mantener viva su pasión mecánica. En su infancia y estudioso solía diseñar automóviles y lo que no. Quería verlos en realidad algún día. Pero debido a la carrera de TI, parece que los diseños no verían la luz del día. Pero lentamente comenzó a financiarse y compró una impresora 3D. Luego comenzó un laboratorio de fabricación donde solía hacer cualquier cosa que se le ocurriera. Utiliza la computadora de frambuesa y hace un sistema de puerta automatizado y radio personal, etc. Ahora ha decidido darle un modelo de negocio.

Ha puesto un precio a su laboratorio para alquilar en cualquier momento por unos pocos dólares de uso cada hora. De esta manera, solo vendrán personas serias y también lo ayudarán a cubrir la financiación en el futuro.

Dicho todo esto, también deseo que sigas adelante para establecer un laboratorio de fabricación. Y comienza a abrazar la cultura creadora. Hay muchos laboratorios de fabricación en las principales ciudades indias.

Deseo que sigas adelante en robótica. Y haga una codificación y programación increíbles.

Todo el mejor chico !!!

Tiene un perfil sólido, con años de experiencia en el desarrollo de software y un título en ingeniería que lo convierte en un candidato muy fuerte.

Todo lo que tiene que hacer es encontrar las empresas que trabajan en el campo de la robótica y abordarlas correctamente.

Preséntate como alguien que esté realmente interesado en trabajar para ellos.

Muéstreles su valor, experiencia y conocimiento. Dígales por qué le apasiona la robótica y trabaja para ellos.

Para lograr todo esto necesitas tres cosas

1- Un plan para buscar empresas y obtener invitaciones a entrevistas [¿Cómo obtener invitaciones a entrevistas?]

2- Prepárese para las entrevistas técnicas [Cómo tener éxito en las entrevistas técnicas]

3-Aprenda a causar una buena primera impresión [¿Cansado de ser rechazado en las entrevistas? Siga esta guía]

Buena suerte para tu futuro.

Intenta mejorar tus habilidades en áreas de inteligencia artificial, aprendizaje automático y visión artificial. Intente tomar cursos en línea sobre algunos de estos temas.

Busque empresas que trabajen en estas áreas y robótica. Intente ponerse en contacto con las personas que trabajan en estas empresas: Linkedin es una buena plataforma para hacerlo. Hable con ellos y dígales que planea encontrar oportunidades en su empresa. ¿Qué habilidades estarían viendo de un candidato potencial? Con base en sus comentarios, vea si puede mejorar sus habilidades en esas áreas.

Puede considerar obtener su maestría en robótica. Idealmente, esa sería la mejor manera de hacer el cambio de carrera.

Definitivamente es posible. La robótica es un campo multidisciplinar. Si tiene experiencia en informática, puede trabajar en Diseño y desarrollo de software. Sería más fácil para usted obtener algunos antecedentes técnicos relacionados con el proyecto, pero no es obligatorio.

Si quieres pasar a trabajar en robótica. Definitivamente sus habilidades de desarrollo de software son muy útiles.

El robot usa software, usted es ingeniero de software. Haz las matematicas.
Tengo un amigo que hizo algunos proyectos donde programó robots y es ingeniero de software. No hay límites estrictos qué puedes hacer, hay personas sin escuela secundaria que están programando y hay informáticos que trabajan en la agricultura.

En pocas palabras, sí. Tendría una ventaja ya que la robótica de hoy en día es intensiva en programación, pero aún tendría que aprender ciertos conceptos básicos de ‘hardware’, un poco de ‘electrónica’, etc. como Johnny-Five) donde esencialmente tienes Javascript usado para programar bots.

¿Estás bromeando? Envíame tu currículum

Desarrolle experiencia en sistemas embebidos y arquitecturas de SO en tiempo real. No tiene el lujo de escribir códigos divagantes cuando se trata de robótica, por lo que tendrá que practicar saltar a través de los aros, en un sentido de código.

Si. Pero probablemente requiera que haya algún tipo de industria de robots en la región donde desea vivir y trabajar.

Probablemente sea más difícil para los programadores de robots trabajar de forma remota que para un diseñador web porque necesitará tener un robot físico frente a usted, para comprender realmente lo que está haciendo su código.

La pregunta más grande, entonces, podría ser, ¿qué tan fácil es para una región que tiene algunos buenos ingenieros de software comenzar a entrar en la robótica? ¿Necesita tener una historia de la ingeniería mecatrónica también, para tener alguna esperanza de eso?

Si su robot tiene IA, necesitará aprender algo al respecto. Tal vez la IA es en lo que realmente quieres concentrarte.

Hay un sitio llamado Robot App Store | Aplicaciones para cada robot! que acepta cargas de desarrolladores independientes. Tal vez este podría ser un lugar para comenzar …

More Interesting

Quiero ser abogado pero también ingeniero de software. es posible?

Como joven ingeniero de software, ¿cuál es la mejor manera de manejar la asignación a una tarea que actualmente parece estar fuera de su alcance?

Quiero convertirme en desarrollador de software y diseñador / desarrollador de sitios web. ¿Por cuál debo ir a la escuela y cuál es más fácil de aprender solo?

¿Cuál es la calidad de los ingenieros de software en Ticketmaster? ¿Tienen buena reputación?

¿Qué sitios web son importantes para un ingeniero de software?

¿Cuáles son algunas diferencias de pensamiento entre los ingenieros de desarrollo de software y los ingenieros de prueba?

Cómo acercarse a colegas al cambiar su código

¿Hay ingenieros de software que se convirtieron en oficiales de IAS?

¿Qué necesito aprender para ser ingeniero de software desde cero?

Después de fallar las entrevistas en la primera ronda, dos veces, ¿cómo puedo hacer frente al hecho de que soy demasiado estúpido para convertirme en un SDE en Google?

¿Cuáles son algunas recomendaciones para una entrevista de vuelo?

¿Cuándo comienza Amazon (Seattle) a hacer verificaciones de antecedentes para nuevas contrataciones SDE?

¿Cuál es la pregunta más difícil que ha enfrentado en una entrevista de ingeniero / desarrollador de software Java?

¿Cuáles son algunas historias de emprendedores tecnológicos (o ingenieros / desarrolladores de software) que obtuvieron malos resultados en la universidad, pero tuvieron éxito en el lugar de trabajo?

¿Crees que los ingenieros de software del pasado tuvieron que ser un poco más inteligentes que los de hoy?