MultiONoticias

Conjuntos de bloques agregados para MATLAB/Simulink para el desarrollo de aplicaciones mediante QUARC

QUANSER: QUARC Desarrollar, implantar y validar ideas de investigación con mayor rapidez

-A
+A

Murtaza Bohra

Gerente de Investigación y Desarrollo, Aplicaciones Académicas

En 2012, cuando era estudiante de posgrado en la Universidad de Toronto, estaba evaluando el rendimiento de un esquema de transición de marcha para un robot cuadrúpedo. Una red neuronal artificial creó trayectorias en tiempo real, respondiendo a los cambios de marcha en línea, y las trayectorias se enviaron a una simulación del robot implementada a través de la caja de herramientas Simscape Multibody™ en MATLAB®. Idealmente, habría construido una plataforma móvil para validar los resultados, pero no fue posible en el marco de tiempo y el alcance de mi programa de maestría. Avance rápido hasta 2021, todavía no tengo los recursos suficientes para construir mi propio robot desde cero, pero ahora tengo acceso a la unidad base de servo rotativo de Quanser , así como a nuestro software de creación de prototipos de control rápido QUARC ™. La combinación de los dos me permite evaluar rápidamente mi esquema de transición de marcha en el hardware utilizando los servos individuales en el bucle mediante el envío de comandos de torsión reales.

La capacidad de QUARC para permitir que los académicos se concentren en su experimento, sin preocuparse por la interfaz con el hardware, es lo que lo convierte en una poderosa herramienta para la rápida implementación y validación de la investigación.

 

Conducir un QBot 2e con dos unidades QUBE-Servo 2

Conducir un QBot 2e con dos unidades QUBE-Servo 2

QUARC no es complicado, pero es bastante sofisticado

En pocas palabras, QUARC hace muchas cosas. Si tuviera que enumerarlas todas, el usuario avanzado apreciaría la mayoría. Personalmente, me gusta categorizar las funcionalidades de QUARC en tres categorías.

Conjuntos de bloques

Los conjuntos de bloques/funciones agregados para MATLAB/Simulink hacen que el desarrollo de aplicaciones mediante QUARC sea muy conveniente. Elementos como el bloque Base de tiempo del sistema, que cuando se agrega a un diagrama, lo simula en tiempo real. O el bloque To Host le permite registrar datos localmente en una máquina que ejecuta MATLAB/Simulink provenientes de un código externo que se ejecuta de forma remota en una máquina totalmente diferente. Haga clic con el botón derecho en cualquier bloque QUARC y acceda a la página de Help para obtener información, o consulte el menú QUARC > Demostraciones en Simulink para ver demostraciones que le muestran cómo funcionan juntos algunos de estos bloques. Como alternativa, escriba help quarc o qc_show_demos en la ventana de comandos de MATLAB, respectivamente.

 

Stream API permite que distintas aplicaciones se comuniquen entre sí utilizando la mayoría de los protocolos de comunicación.

 

API

El segundo aspecto incluye 3 API: HIL (hardware in the loop), Stream y Media. En pocas palabras, HIL le permite hablar con hardware Quanser, como QUBE-Servo 2, QDrone, así como con una variedad de dispositivos y DAQ populares de terceros. Siempre que esté ejecutando su código en un objetivo que tenga uno de los dispositivos enumerados en el bloque HIL Initialize, su código puede realizar una variedad de E/S con ese dispositivo. Stream API permite que diferentes aplicaciones se comuniquen entre sí utilizando la mayoría de los protocolos de comunicación, Media API le permite acceder a dispositivos de video (cámaras 2D como una cámara web o cámaras 3D como la línea RealSense) y  Devices API  le permite acceder a LIDAR.

Administrador de objetivos QUARC

El tercer aspecto es probablemente el más sofisticado de todos, el QUARC Target Manager . Permite la instalación de QUARC en cualquier nodo informático de la misma red para comunicarse entre sí. Cuando crea su modelo de Simulink, el código externo generado se descarga, carga e implementa en un destino remoto mediante QUARC Target Manager. Le brinda consolas para monitorear cada paso de este proceso e incluso permite que Simulink le muestre qué está haciendo ese código externo directamente en la máquina en la que está ejecutando MATLAB.

Lista de verificación para desarrollar con éxito una aplicación con QUARC

Mi lista de verificación para desarrollar con éxito una aplicación con QUARC tiene dos preguntas: (1) ¿dónde se ejecutará mi aplicación? y (2) ¿qué va a hacer mi aplicación? Voy a responderlas en el orden que nos permitió diseñar el ejemplo de manejo de QBot 2e que mencioné anteriormente.

¿Dónde se va a ejecutar la aplicación?

La aplicación constaba de dos nodos, el primero era la PC con Windows que ejecutaba MATLAB y el segundo era la Raspberry PI 3 B+ como el cerebro informático del QBot 2e. Ambos dispositivos estaban conectados a la misma red. Nuestras aplicaciones se configuraron para generar código externo para win64 linux_pi_3, respectivamente, y las direcciones IP de los dos dispositivos se configuraron en consecuencia. QUARC crea código automáticamente a partir de los modelos de Simulink para el tipo de destino correspondiente y lo descarga allí por usted. No tiene que preocuparse por la compilación cruzada ni por ejecutar el código generado manualmente. Se hace automáticamente cuando presiona un solo botón en Simulink.

¿Qué va a hacer la aplicación?

La aplicación para la PC con Windows fue conectar dos unidades QUBE-Servo 2, una para el volante y la otra para el pedal del acelerador. Esto requería que el bloque HIL Read de HIL API leyera los servocodificadores mientras el usuario manipulaba la posición de los dos discos. Esta aplicación luego enviaría esta información a la aplicación QBot 2e, que requería el bloqueo del servidor de Stream API. La segunda aplicación recibiría esta información y escribiría el comando de velocidad angular y de avance correspondiente en los motores del QBot 2e, que requería el bloque de cliente de Stream API, así como el bloque HIL Write de HIL API. Además, la segunda aplicación utilizó Video3D Capture and Video Display de Media API.bloques para mostrar al usuario la vista en primera persona de la cámara Kinect de QBot 2e, justo en la pantalla de uno de los monitores conectados a la máquina de Windows.

 

ecuaciones básicas de un robot de accionamiento diferencial para aplicar correctamente la cinemática diferencial inversa.

Dicho esto, tuvimos que desarrollar la lógica correctamente, por supuesto. Conocíamos las ecuaciones básicas de un robot de accionamiento diferencial para implementar correctamente la cinemática diferencial inversa. Nos aseguramos de que todos los comandos siguieran la convención positiva esperada. Seguimos los ejemplos básicos (QUARC > Demostraciones en Simulink) para configurar las API correctamente. Estos pasos no son difíciles, solo requieren una inmersión en la documentación y los ejemplos, y un aire de claridad en el mejor de los casos. En media hora, se implementaron nuestras aplicaciones. En otros 10 minutos, hicimos que la aplicación QBot 2e verificara si un servidor estaba conectado y, de no ser así, se manejó usando una variedad de bloques de procesamiento de imágenes que ofrece QUARC.

Junto con esta aplicación, durante una reciente sesión de capacitación, operamos dos brazos simultáneamente con un joystick, y el QDrone/QBot 2e demostró una misión de líder/seguidor, todo desplegado en cuestión de días. Uno de los estudiantes me dijo: “QUARC es asombroso… este era mi proyecto de tesis… ahora lo hicimos en 30 minutos…”. 

 

Ir al artículo original: https://www.quanser.com/blog/quarc-saves-you-time/

 

Más información sobre este producto:

Entre en contacto con:

Jacqueline Vicarte
Ejecutivo Quanser
jvicarte@multion.com

+52 (55) 55494050 Ext.