Robótica

Introducción a la Robótica

La robótica implica escribir programas informáticos que permiten a un robot percibir su entorno, formular planes, tomar decisiones y ejecutar tareas. Por ejemplo, programar un robot terrestre para que se desplace de forma autónoma dentro de un edificio requiere detección y percepción, localización y mapeo, planificación y seguimiento de trayectorias, sistemas de control de actuadores y otras tareas.

La robótica generalmente implica:

  • Habilitar a un robot para que pueda percibir el entorno mediante algoritmos de visión artificial y algoritmos de Deep Learning para detección de objetos, clasificación y seguimiento, y estimación de movimientos
  • Proporcionar autonomía a un robot mediante algoritmos de localización y mapeo simultáneos (SLAM), evasión de colisiones y planificación de movimientos
  • Controlar el comportamiento de un robot mediante el diseño de sistemas de control, tales como control predictivo de modelos, control por par motor calculado y seguimiento de trayectorias
  • Establecer comunicación e interfaz con sensores y activadores conectados con diferentes plataformas embebidas, tales como CPU, GPU, FPGA y microcontroladores

Cuando los ingenieros comienzan un proyecto de robótica, suelen desarrollar un diagrama de máquina de estados del comportamiento previsto del robot. También utilizan lenguajes de programación como C/C++, Python®, Java® y MATLAB® para el desarrollo de algoritmos, y middleware como Robot Operating System (ROS) para la abstracción de hardware, el control de dispositivos de bajo nivel, la transmisión de mensajes entre procesos y el despliegue de hardware.

Flujo de trabajo habitual para proyectos de robótica.

Flujo de trabajo habitual para proyectos de robótica.

Con frecuencia, un error en un paso puede afectar a todo el flujo de trabajo del proyecto de robótica. El modelado y la simulación en software ayudan a prevenir errores de implementación, ya que identifican problemas durante el prototipado, en lugar de encontrarlos en el proceso de producción de robots o, lo que sería peor aún, al utilizarlos en un entorno del mundo real. Simular el sistema también ayuda a los ingenieros a perfeccionar su diseño ajustando los parámetros de control, sin importar el tipo de plataforma ni tener acceso al hardware del robot.

MATLAB ofrece varios algoritmos y funciones integrados para robótica. Por ejemplo, con unas pocas líneas de algoritmos de Deep Learning listos para usar de MATLAB, los robots pueden identificar objetos en un entorno. Simulink® ofrece bloques predefinidos para modelado y simulación con diseño basado en modelos para robótica. Por ejemplo, los bloques ROS de Simulink permiten a los programadores de robots suscribirse a datos de sensores y publicar comandos para robots a través de una red ROS sin necesidad de escribir código.

Uso de bloques ROS para publicar y suscribirse a mensajes en Simulink.

Uso de bloques ROS para publicar y suscribirse a mensajes en Simulink. Vea el ejemplo.

Con MATLAB y Simulink para robótica, puede crear una simulación de robot escalable para prototipar, probar modelos conceptuales y depurar de forma económica. Luego, puede utilizar los modelos de alta fidelidad para la validación mientras mantiene el resto de los algoritmos en el mismo entorno de simulación. Una vez obtenido el resultado deseado en la simulación del robot, puede generar código ejecutable independiente para el sistema embebido a partir del modelo de Simulink en lenguajes de programación de uso frecuente. Mediante la conectividad de MATLAB y Simulink con una red ROS, puede generar nodos ROS C++ directamente desde MATLAB y Simulink para probar y verificar aplicaciones en robots dotados de ROS y simuladores de robots como Gazebo.

Para obtener más información sobre robótica, consulte Robotics System Toolbox™, Navigation Toolbox™, ROS ToolboxMATLAB y Simulink.


Ejemplos y procedimientos

Detección y percepción

Planificación y decisión de trayectorias

Sistemas de control


Referencias de software de robótica

También puede consultar estos temas: robótica y sistemas autónomos, mecatrónica, Simscape Multibody, Control System Toolbox, Stateflow, Automated Driving Toolbox, Computer Vision Toolbox, Embedded Coder, MATLAB Coder, Simulink Coder, control PID, cinemática inversa, robótica en la nube, planificación de trayectorias