Quiero comenzar a aprender robótica, ¿cuál es la mejor manera de iniciar Arduino, Raspberry, ROS, AVR?

La mejor manera de comenzar a aprender robótica es hacer un robot … un robot móvil básico …

Asista a un taller o siga las instrucciones proporcionadas en un sitio web o un libro … haga lo que haga, pero cree un robot simple. Arduino es la mejor plataforma para comenzar con la robótica y para construir robots tan simples.

¿Qué es Arduino?

Arduino es una plataforma de creación de prototipos de código abierto basada en hardware y software fáciles de usar. Las placas Arduino pueden leer entradas (luz en un sensor, un dedo en un botón o un mensaje de Twitter) y convertirla en una salida: activar un motor, encender un LED y publicar algo en línea. Puede decirle a su tarjeta qué debe hacer enviando un conjunto de instrucciones al microcontrolador en la tarjeta

Arduino no es una robótica real, nada de lo que mencionaste anteriormente es una robótica real. Definición de robótica: la rama de la tecnología que se ocupa del diseño, la construcción, el funcionamiento y la aplicación de robots. Arduino, Raspberry pi, ROS y AVR son solo medios para lograr lo que se define, pero ellos mismos no son robóticos. En ese sentido, no hay concepto de robótica real. Arduino, Raspberry pi y tableros basados ​​en AVR, son proyectos de hardware y software, se pueden utilizar para comenzar. Y, ROS es una historia totalmente diferente.

Siento que Arduino es la mejor plataforma para empezar, porque me explicó una de las cosas fundamentales en robótica: lo que significa programar un robot. Escribí un par de líneas en IDE, el LED parpadeó en la placa … Motores conectados a la placa con la ayuda del circuito del controlador del motor y agregé algunas líneas más, los motores funcionaron … Al igual que literalmente cualquier cosa puede construirse encima de eso. Es así de simple.

Es posible que encuentre respuestas para esta pregunta (si quiero entrar en la robótica, ¿es Arduino un buen lugar para comenzar?) Útil. Echa un vistazo a este artículo en robohub.

 

Hola,

Arduino es perfecto para entrar en la robótica. De hecho, es lo primero que debe experimentarse para entrar en la robótica. Pero eso no significa que no debas probar Raspberry Pi. No importa si su computadora se ejecuta en Windows, solo necesita un escritorio. Raspberry Pi tiene su propio sistema operativo.

Una vez que use estos dos, aprenderá cómo están disponibles los diferentes tipos de tableros y sistemas. Entonces, puedes dar saltos más altos.

Utilice los tableros de la siguiente manera:

  • Arduino
  • Frambuesa pi
  • Orange Pi / Banana Pro / Beagle Board (Úselo de acuerdo con las especificaciones requeridas para su proyecto)
  • Panda Board / Intel Galileo
  • Sensor Kinect

Una vez que haya trabajado en estas cosas, puede usar sus ideas para hacer cualquier cosa en Robótica de acuerdo con usted.

Te daré algunos beneficios de usar los siguientes tableros:

  1. Arduino : Todo comienza aquí. Considere a Arduino como un niño de todas las tablas, pero los niños son inteligentes en estos días. Comprenderá cómo se interconectan el hardware y los códigos y cómo se relacionan entre sí, cómo escribir Programación Java. Software: Processing, Arduino, Idioma: Java (También hay otros idiomas disponibles)
  2. Raspberry Pi : Si Arduino es un ingeniero, Raspberry Pi es su hermano mayor, el Doctor. Aquí, aprenderá cómo funciona la codificación, cómo puede hacer tantas cosas con el mismo dispositivo. Aprenderás cómo la codificación en un software es como aplicar Skin Cream y la codificación en shell es rejuvenecimiento desde dentro. Sin software, es el propio SO Shell. Idioma: prefiero Python.
  3. Orange Pi / Banana Pro / Beagle Board : Porque ahora, tienes que pensar en términos de robótica. Ahora trabajará en tablas con especificaciones de alta gama. Sabrá qué placa, procesador y sensores elegir para el propósito de su proyecto. Software: Varios. Idioma: Se utilizará uno o más.
  4. Panda Board : para hacerle saber que puede manejar un sistema complejo tan fácilmente. Sabrá que no es importante lo complejo que es el sistema, lo único importante son los requisitos que necesita de esa placa, todas las especificaciones adicionales no son tan importantes.
  5. Sensor Kinect: porque necesitas entrar en el mundo real. Utiliza la técnica de detección 3D, será muy útil en robótica. Te impulsará a hacer más proyectos. Software: Kinect SDK, Procesamiento. Idioma: Varios.

La mejor de las suertes !!!

Ni el arduino ni el ROS son robots reales, y aquellos que te dijeron que ROS es mucho mejor que el arduino quizás no saben nada de ninguno de los dos, y no saben lo que están haciendo.

Arduino: es una placa de desarrollo, utilizada para interconectar muchos sensores electrónicos, controles de motores, etc.

ROS: Es un sistema operativo de robot. Bueno, eso puede parecer un poco engañoso, no es un sistema operativo en sí mismo, pero puedes considerarlo como otra biblioteca más en C ++, que te ayuda a comunicarte con varios sensores y programas que ejecutan tu robot. Obviamente no es una descripción precisa, sino solo para darte una idea.

Raspberry Pi: Otra vez es otra placa de desarrollo o una mini-computadora que puedes decir que es capaz de ejecutar Linux y hacer algunos cálculos de bajo nivel en tiempo real. Puede ejecutar ROS, también, puede ejecutar sus programas que pueden comunicarse con todos los arduinos y microcontroladores en su robot.

De todos modos, esa es una descripción básica, solo para darte una idea de lo que son esas cosas. Ahora eres un estudiante de primer año y quieres estudiar robótica, así que diría que debes tomar algunos cursos de matemáticas durante tu licenciatura. La robótica es casi todas las matemáticas. La robótica en sí misma no significa nada, es una combinación de varias disciplinas:

  • Ciencias de la Computación
  • Ingenieria Eléctrica
  • Ingeniería mecánica

Si desea subdividir aún más, cualquier persona que trabaje en las siguientes áreas puede ingresar a la robótica:

  • Visión por computador
  • Percepción robótica utilizando datos de nubes de puntos y otros sensores.
  • Aprendizaje automático
  • Aprendizaje de refuerzo (subárea en aprendizaje automático, utilizada en la toma de decisiones)
  • Aprendizaje profundo (una vez más una subárea en aprendizaje automático, en Vision se usa para el aprendizaje automático de características)
  • Localización y mapeo simultáneos (SLAM): combinación de visión, aprendizaje automático, optimización, etc.
  • Cinemática y dinámica inversas
  • Planificación de movimiento y trayectoria (puede ser muy matemática): los algoritmos de planificación de movimiento deciden cómo debe navegar el robot y se encargan de evitar colisiones
  • Optimización matemática (teoría): en robótica, es útil cuando está trabajando en SLAM, Motion Planning, Apprenticeship Learning o solo cuando desea reformular un problema de toma de decisiones o un problema de planificación como un problema de optimización. A menudo, estaría trabajando en un problema, que está formulado como un problema de optimización. Si tiene antecedentes rigurosos en la teoría de la optimización, puede reformular su problema de tal manera que funcione en tiempo real, requiriendo una sobrecarga computacional mínima (de nuevo, si no entiende algo, es porque lo he explicado vagamente de esta forma, sabrá más sobre esto en sus últimos años de ingeniería, como la programación lineal y la programación cuadrática, si tiene estas opciones, tome estos cursos.
  • Sistemas de control
  • Diseño mecánico y análisis (no es mi área, y por lo tanto no puedo discutir más)
  • Electrónica y sistemas embebidos: si desea desarrollar nuevos sensores, debe tener una formación bastante matemática y teórica O bien, puede dominar esta área y comenzar a construir robots. Pero no tendrán ninguna capacidad de toma de decisiones autónoma, para eso necesita inteligencia artificial (optimización, aprendizaje automático, aprendizaje por refuerzo, etc.)

Pero una vez más, mi consejo sería obtener la mayor cantidad de cursos matemáticos posibles. Si hay una opción para tomar algún curso de matemáticas en tu universidad, prefiértelo sobre cualquier otro curso.

Buena suerte para una carrera en robótica!

He respondido varias formas de esta pregunta en múltiples lugares en Quora. Le recomendaría que siga este mapa de ruta que podría guiarlo en función de su nivel actual para avanzar en robótica.

La hoja de ruta tiene 4 niveles y cada nivel se centra en 4 conceptos básicos. ¡Cada concepto se entrelaza consigo mismo y desarrolla de manera holística tus genes robóticos internos!

Nivel de calentamiento:

  1. Aprender codificación: comience a aprender al menos un lenguaje de programación práctico. Arduino IDE es bueno. Python es genial. C / C ++ será fantástico. Mi sugerencia sería: Python . Hay varias razones para esto y más adelante en la hoja de ruta verás por qué.
  2. Aprende electrónica: comienza a construir circuitos electrónicos básicos. Puede ser tan simple como encender un LED. A continuación se encienden más LEDs. Hacer una señal de tráfico simple. Implementar interruptores. Conozca las ideas teóricas sobre cómo funcionan el voltaje, la corriente, las resistencias, los transistores, los circuitos en serie y en paralelo. ¡Explora sensores y servomotores también!
  3. Aprende el ensamblaje básico: de niños nos encantaba hacer juguetes y construir cosas. Haz lo mismo aquí. Aprende a hacer algunas estructuras básicas utilizando madera, acrílico, fibra o plástico.
  4. Integre con el microcontrolador: con el conocimiento de los conceptos anteriores, debe probar y probarlos en un microcontrolador básico. Después de todo, quieres que tu circuito “reaccione”. La opción más popular entre los aficionados y principiantes es ir con Arduino. Arduino realmente ha simplificado el proceso de codificación e implementación de circuitos reaccionarios básicos.

(Recursos: YouTube, Khan Academy, Code, Coursera, Udemy)

Nivel principiante:

  1. Aprenda programación orientada a objetos: no solo es importante codificar en robótica, sino también cómo codificar bien . La programación orientada a objetos (OOP, por sus siglas en inglés) es un músculo tremendo para crecer y, antes, puedes hacer esto, más te agradecerás en el futuro. OOP no es exclusivo de Python. Sin embargo, en Python puedes implementarlos fácilmente y practicar. A través de la POO, aprenderá sobre clases, métodos, herencia, etc., y esta es una excelente técnica para escribir códigos funcionales, modulares y eficientes.
  2. Aprenda física, probabilidad y álgebra lineal: a medida que crece de un robotista infantil a un adolescente, es importante que también sepa cómo la robótica es escrita, leída y hablada por otros miembros de la comunidad. Este lenguaje robótico utiliza mucho la física, la probabilidad y el álgebra lineal. Sí, es posible que no disfrutes de estos temas en la escuela o la universidad, pero confía en mí, los necesitas si eres serio con la robótica. No se puede hacer visión por computadora sin saber acerca de las matrices. No se puede hacer la planificación del camino sin saber acerca de la física. No se puede hacer inteligencia artificial o aprendizaje automático sin conocer la probabilidad.
  3. Habilidades informáticas más involucradas: ¿Qué quiero decir con eso? Muchos de los recién llegados a la robótica se quedan perplejos (¡yo también!) De que necesitan aprender este nuevo sistema operativo de aspecto alienígena que tiene un pingüino en algún lugar al lado. Estoy hablando del sistema operativo Linux . Es imperativo que alguien que busque profundizar en la robótica se familiarice con Linux. Muchas bibliotecas, paquetes y software desarrollados para robótica se distribuyen de manera muy fácil y eficiente en entornos Linux. Opción de SO Linux popular: Ubuntu
  4. Sistemas integrados: ahora que ha desarrollado un mejor conocimiento de la codificación, los circuitos, los conceptos teóricos y la familiaridad con Linux, necesitamos implementarlos en una computadora más pequeña que nuestra computadora portátil. Así que adelante, pruebe los conceptos de nivel de calentamiento junto con los anteriores Conceptos en una mini computadora como Raspberry Pi o BeagleBone. ¡Enganche algunos sensores, servos y una cámara a una de estas computadoras y escriba un código para detectar, mover y detectar cosas!

(Recursos: YouTube, Khan Academy, Code, Coursera, MIT OCW)

Nivel intermedio:

  1. Desarrollar los fundamentos teóricos: aquí, dependiendo del área de robótica en la que esté interesado, debe aprender más sobre la teoría que la sustenta. Aprenda sobre la manipulación robótica del brazo (cinemática y control), la percepción (visión artificial, álgebra lineal, matrices), aprendizaje automático / inteligencia artificial (probabilidad, estadística, matemáticas). ¿Ves cómo algunos de los conceptos anteriores son fundamentales en estas áreas de robótica central?
  2. Utilice bibliotecas avanzadas: ahora necesita implementar algoritmos de aprendizaje automático y / o de visión artificial en su robot. Después de todo, el robot debería poder ver, pensar y aprender, ¿verdad? En Python, hay bibliotecas increíbles escritas para implementar el aprendizaje automático y los algoritmos de visión computacional, por ejemplo, tensor de flujo y OpenCV. Del mismo modo, también se puede practicar una gran cantidad de IA en Python. Por supuesto que puedes hacer lo mismo en C / C ++. Sin embargo, estoy tratando de mantenerlo consistente aquí.
  3. Familiarícese con ROS: con el conocimiento de todo lo anterior, un excelente software intermedio que debe aprender es el Sistema operativo de robot (ROS). Puede ser un poco difícil de recoger al principio. Sin embargo, ROS abre sus puertas para probar algoritmos avanzados y simulaciones en robots que ni siquiera tiene. ¿Quieres volar un quadcopter? ¿O navegar un robot de forma autónoma en un mapa? ¿Qué hay de conseguir un brazo industrial para recoger un objeto? Puedes hacerlo en ROS a través de su entorno de simulación llamado Gazebo.
  4. Más CAD: Usted puede estar interesado en desarrollar y diseñar robots complejos. Comience a aprender software de diseño 3D como Blender o SolidWorks para que pueda diseñar sus propios robots.

Nivel de experto:

  1. Continúe aprendiendo y creciendo: cada concepto mencionado anteriormente es infinito por su propia virtud, y para convertirse en un experto en robótica, necesitará invertir tiempo y seguir aprendiendo. Se dará cuenta de que necesita aprender más clasificadores o modelos para detectar mejor los objetos / imágenes. O puede que necesite aprender más sobre los algoritmos de control para optimizar sus soluciones. Como experto, desarrolla uno de los activos más sólidos y raros: la intuición correcta .
  2. Más software / hardware: dependiendo de su área de interés y especialización, estará haciendo más y más de codificación, desarrollo algorítmico, ROS y / o diseño robótico.

Por último, definitivamente no soy un experto y, por lo tanto, no puedo agregar mucho a eso. Lo que puedo decir con seguridad es que no sé lo que no sé. Una cosa importante para recordar es: comenzar y ser consistente =)

Para comenzar a aprender robótica, debes comenzar a HACER robótica. Ensuciarse las manos, construir algo.

Conectar una colección elegante de LED a tu arduino o enviar tweets desde tu frambuesa pi NO es robótica. Cuando la gente dice que Arduino no es robótica, tienen razón. Un robot involucra al menos tres unidades:

1. Percepción: sensores para observar su entorno. ej. proximidad, fuerza, temperatura

2. MCU: unidad de cómputo para procesar información de esos sensores y ACT en consecuencia. por ejemplo, Arduino, Raspberry Pi, AVRs

3. Actuadores: estos reciben señales de la MCU y actúan en consecuencia, manipulándose a sí mismos o al entorno. Principalmente en forma de motores, actuadores lineales o servos.

ROS es una excelente herramienta para construir robots, pero no te metas en ella hasta que tengas una idea básica de un robot, es decir, que hayas construido y ejecutado uno basado en algo simple como Arduino. Solo entonces podrá apreciar las características que ROS trae a la mesa.

El aprendizaje incorporado es un requisito previo para una buena práctica robótica. Saltar directamente a la robótica es como experimentar sin ser minucioso con lo básico. La robótica es solo una extensión de incrustado con una adición de mecánica en ella.

Ahora vengo a tu pregunta.
Arduino es plug and play, pero en lo que respecta a la robótica, lo encontré bastante limitado y no muy amigable. Aunque es fácil de programar y depurar dada la gran comunidad en línea disponible para ello. Pero a veces limitan las posibilidades.

AVR es muy flexible y puede interconectarlo fácilmente con muchos otros componentes sin mucha molestia, pero nuevamente debe ser creado desde cero, por lo que requerirá mucho más esfuerzo.

Tarta De Frambuesas…. Es un formato muy avanzado con un controlador de 64 bits en uso. Comenzando con esto, solo se aconseja si tiene un mentor con usted o si está bien versado en el uso de programas integrados. Es para aplicaciones robóticas avanzadas.

Personalmente te sugeriré que comiences con ARDUINO. Está perfectamente bien para aplicaciones básicas y comenzar con pequeños proyectos robóticos.

Arduino y Raspberry Pi son los sistemas embebidos en robótica más populares. El Arduino es un microcontrolador. Se vende más barato que la Raspberry Pi y no tiene casi las mismas capacidades, pero tampoco está pensado para las mismas cosas. La principal ventaja de Arduino sobre el Pi viene en forma de sensores integrados que lo hacen capaz de hacer que el Pi no esté exento de grandes modificaciones o adiciones.

Por lo tanto, para la robótica, Arduino sería la opción, ya que es una plataforma que es ampliamente utilizada por los experimentadores de hardware de todo el mundo, lo que significa que hay mucha información y recursos disponibles. Está listo para usarse de inmediato, con una multitud de protectores disponibles para cualquier necesidad especializada que pueda tener y que no esté cubierta por el hardware básico.

ͻ ˍ

Ros debería ser la última en tu lista.

Pero si quieres aprenderlo desde lo básico, sigue este blog.

Robótica a la vez