Cómo comenzar a aprender sobre robótica autónoma

No, Arduino no es un buen lugar para aprender robótica. Claro, aprenderá a controlar un servo o parpadear un LED. Esto no es robótica, es lógica programable. Si crees que aprender a programar un Arduino te va a enseñar cómo hacer un robot, eso equivale a decir que aprender a escribir un controlador de mouse te va a enseñar cómo construir una computadora.

Querrá mirar el Sistema Operativo del Robot y comenzar con los tutoriales allí (ver el resto de la publicación para enlaces) Querrá familiarizarse con los simuladores Tutoriales: Instalación, arquitecturas del mundo real vs arquitecturas de simulación
.. etc, y trabajar desde una vista de arriba hacia abajo.

El sistema operativo del robot Alimentar a los robots del mundo es esencialmente un sistema de archivos que le permitirá organizar todo su código de robótica.

¿Por qué comenzar con software y no con hardware? En la simulación, y con la forma en que está organizado el Sistema Operativo del Robot, APRENDERÁ cómo interactuar con los controladores simulados y cómo accionar robots simulados, y podrá armar sistemas completos. En pocas palabras, un robot es esencialmente una red de área local de sensores y actuadores conectados por uniones físicas en general, una estructura en forma de árbol. Pronto se dará cuenta de que Arduino es solo un dispositivo que se utiliza para comunicarse con el hardware, y que lo real se hace aprendiendo las ideas que organiza el software.

Con el sistema operativo del robot, aprendí a programar y escribir software para el robot PR2

El robot de manipulación Husky Mobile

y el sistema de manipulación móvil Talos que se desarrolla en UBC Open Robotics

La única vez que me encontré con un Arduino fue porque necesitábamos interactuar con un motor para la base móvil en el robot Talos. Era como 100 líneas de código de un proyecto de 10k + LOC. Lo más importante, debe comenzar con algo pequeño y seguir haciendo palanca.

Comenzaría con los tutoriales muy completos de Turtlebot que se pueden ejecutar en simulación, que se encuentran en: Learn TurtleBot y ROS

Incluso puede poner en funcionamiento el robot Husky Mobile Manipulation, que le permitirá moverse con el brazo en simulación (¡puede golpear las cosas!) Husky_ur5_moveit_config / Tutorials / Husky UR5 Mobile Manipulation Demo

Voy a comentar algunos de los puntos que hizo el cartel superior y refutarlos:

“El IDE es compatible con múltiples sistemas operativos”

Claro, eso es genial. Nadie ha hecho un gran robot con Windows o Mac. Todos han sido programados usando Linux. Sí, puede usar un Arduino en Windows o aprender los comandos del controlador PLC / Motor y parpadear un LED. Desea hacer robots, no parpadear LED.

  • “La plataforma es de código abierto, muy popular y solo está aumentando en popularidad”

El sistema operativo del robot es el sistema operativo más popular y ampliamente utilizado por investigadores y robotistas en todo el mundo. Ha permitido la creación de más de 65 robots. Todo es de código abierto y gratuito para comenzar.

  • “Hay una gran cantidad de apoyo comunitario y ayuda en línea”

    Véase más arriba. Intente comenzar aquí: jade / Instalación / Ubuntu – ROS Wiki y comience con los tutoriales ROS / Tutorials – ROS Wiki y luego pase a los tutoriales Gazebo que son un poco más interactivos Tutoriales: Comience

  • “Hay muchos minoristas que venden componentes”

    Un componente no es un robot. Como en mi analogía anterior, comprar un mouse no te enseñará cómo construir un robot.

  • “Muchos componentes y sensores ya tienen controladores Arduino disponibles”

    Sí, y ROS también. Arduino es un dispositivo periférico, no un robot. La mayoría de las cosas tienen controladores para comunicarse a través de USB.

  • “Muchas de las piezas están disponibles a precios muy razonables”
    Puede aprender todo sobre robótica completamente con simulación y comprar una plataforma física más tarde, donde su código será directamente portátil de forma casi gratuita (puede tomar un par de días / semanas). Esto es gratis.
  • “Es increíblemente fácil comenzar, no es necesaria una configuración loca”

    Consulte Tutoriales: Comenzar para comenzar de inmediato.

Bueno, lo primero que recomendaría que analizara sería controlar tanto los motores paso a paso como los motores rotativos normales. Los motores paso a paso son útiles para acciones de alta precisión, fácilmente repetibles y, por supuesto, ya sabes para qué sirven los otros tipos.

Y lo más importante para CUALQUIER tipo de plataforma robótica es saber cómo escribir código que se ejecutará en un Arduino, controlar múltiples motores / lectura desde múltiples sensores y proporcionar telemetría remota simultáneamente con código sin bloqueo.

El truco para el código sin bloqueo:
– Métodos cortos y dulces para cada acción. Esto le permite ejecutar muchos pequeños pasos secundarios en rápida sucesión para afectar una acción general más grande. Por ejemplo, si desea girar un motor paso a paso a 1200 pasos / min continuos mientras toma lecturas constantes de un sensor de temperatura, puede hacer 10 pasos, luego una lectura, diez pasos más, luego una lectura, etc. Y debido a la naturaleza rápida de ambas operaciones, parecerá que están sucediendo simultáneamente.

-Estado actual y acciones futuras. NECESITA hacer un seguimiento de todas las pequeñas cosas que suceden para saber que no está haciendo demasiado. Y también debe poder realizar un seguimiento de las operaciones pendientes para que su código no quede inactivo esperando los comandos.

En primer lugar, debe identificar qué controlador utilizará para su robot. Por ejemplo, si desea crear un robot seguidor de línea, puede usar el microcontrolador Atmega 16. Luego, para la locomoción de su robot, necesitará motores. Puede ser un motorreductor de CC o un motor paso a paso para una alta precisión. Para controlar la velocidad del motor, necesita un chip controlador de motor, L293D, por ejemplo. Para detectar la señal necesita un sensor. En el caso del seguidor de línea, puede usar el sensor IR. Debe estudiar la arquitectura del controlador que está utilizando, el diagrama PIN básicamente y, en consecuencia, puede hacer las conexiones, ya sea a través del diseño de PCB o de forma manual.
Una vez que se hayan realizado todas las conexiones, debe programar su controlador.

Si desea jugar con el hardware, puede obtener un arduino, un par de escudos, un libro y comenzar a hacer un control de movimiento básico. A pesar de las objeciones de algunas respuestas aquí, Arduino está perfectamente bien para aprender rápidamente.

Si quieres volverte loco, puedes obtener algo como el zedboard. Tiene un chip xilinx ZYNQ. Zynq es un chip con un procesador arm9 y una gran parte de la tela fpga. Con eso, puede descargar un sistema operativo de su elección, escribir algún software y poner lógica de control de hardware dedicada en el fpga, y luego ejecutar señales hacia y desde los conectores de cinta. Es una muy buena pieza de kit por $ 400.

Lo más importante, no te olvides de divertirte.

Estoy de acuerdo con David Nelson, Arduino debería llevarte a las pistas.

Lo más importante para entender es el circuito de percepción-acción: lea sus sensores, decida qué hacer con sus motores y vuelva a hacerlo.

Y también (porque eres de un entorno CS) lo difícil que es ver el mundo y cuánto error pueden tener tus sensores.

Después de eso, depende del tipo de robot que desee diseñar: robot móvil para navegación, interacción humano-robot, robot de manipulación, UAV …

More Interesting

Cómo obtener una pasantía en aprendizaje automático de IA en NICTA

¿Cuál es la mejor manera de enseñarle a tu IA de bot de chat?

¿Pueden las tareas de inferencia de aprendizaje automático en los centros de datos generalmente hacerse paralelas?

Con toda esta charla sobre IA y aprendizaje profundo, ¿los bots sufrirán el síndrome HAL 9000?

¿Quora es una IA de supercomputadora que está aprendiendo sobre el mundo para hacerse cargo? ¿Le damos la bienvenida a nuestros nuevos señores robot?

Mi amigo, que es ingeniero de aprendizaje automático, dijo que ML no es nada especial y que todos pueden hacerlo con suficientes datos de capacitación, ¿verdad?

Dado un conjunto de sub-gráficos, que se muestrean del gráfico subyacente, ¿cómo puedo inferir el gráfico subyacente dado el conjunto de sub-gráficos observados?

¿Cómo se aprende a construir máquinas?

¿Son mónada (programación funcional) y clase (programación orientada a objetos) la misma cosa?

¿Por qué la inicialización de pesos por números pequeños es mala en las redes neuronales?

¿Cuál es la diferencia entre aprendizaje automático, autoaprendizaje, aprendizaje profundo y aprendizaje de refuerzo?

¿Cómo funciona el algoritmo de búsqueda de ruta de Age of Empires II?

¿Cuál es un posible escenario en el que Google podría convertirse en Skynet?

¿Qué piensan los informáticos sobre los robots de IA TARS y CASE que se muestran en la película Interestelar?

¿Cortana aprende y mejora con cada consulta, o solo mejora con actualizaciones?