0
$\begingroup$

Rosanswers logo

Estoy haciendo un proyecto para controlar un robot y para mandarle las instruciones al robot utilizo un nodo a modo de cliente en el que escribo las instruciones para mandarlas a otro nodo servidor a traves de un servicio, y este nodo es el que conecta al robot. Lo que quiero es poder mandarles las instruciones a traves de una pantalla grafica del estilo a simulink en donde pueda crear bloques donde por ejemplo meter un boton de avanza, y que este se pueda comunicar con el nodo del cliente. No quiero nada de simulación solo una intefaz grafica donde poder enviar instruciones a mi robot pero sin tener que escribir instrucion a instrucion.


Originally posted by angelastras on ROS Answers with karma: 3 on 2015-07-09

Post score: 0


Original comments

Comment by Javier V. Gómez on 2015-07-09:
No sé si eso que pides existe, diria que no. Sé que se existe una conexión de Matlab para ROS pero no sé si para simulink valdrá. Siempre puedes hacer un nodo de teleoperación para hacer todo más fácil.En cualquier caso, te recomiendo que escribas en inglés dado que es el idioma oficial de la página

Comment by gvdhoorn on 2017-05-09:
@Javier V. Gómez is right: please use English when posting here. ROS Answers is an international support forum, where we only accept/use English.

I appreciate @mag.rod and @S.Prieto helping here, but it's not a good idea to facilitate posters using other languages.

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

Como bien dice Javi V., existe una integración entre ROS y MatLab a través de su última distribución, la R2015a. Quizá desde ahí puedas enviar las órdenes que deseas y generarte una interfaz gráfica desde MatLab. Sino, siempre puedes crear tu propia interfaz gráfica en C o C++ encargada de publicar los comandos necesarios para enviar tus órdenes al robot, dependiendo del nivel de programación que poseas.

Un saludo.


Originally posted by S.Prieto with karma: 258 on 2015-07-13

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$
0
$\begingroup$

Para crear una interfaz gráfica que funcione de manera similar a Simulink y que permita enviar instrucciones a tu robot sin necesidad de escribirlas manualmente, puedes considerar las siguientes opciones:

  1. Node-RED Descripción: Node-RED es una herramienta de programación visual basada en flujos que permite conectar dispositivos y servicios en línea. Puedes crear una interfaz gráfica arrastrando y soltando nodos, que pueden representar botones y otras interacciones. Integración con ROS: Existen nodos específicos para ROS en Node-RED que te permitirán comunicarte fácilmente con tu robot. Ventajas: Es fácil de usar y tiene una amplia comunidad y soporte. Además, permite la visualización y el control en tiempo real.
  2. Qt para ROS Descripción: Qt es un framework de desarrollo de aplicaciones gráficas que puedes usar para crear una interfaz personalizada. Utilizando Qt junto con ROS, puedes diseñar una interfaz gráfica donde los usuarios pueden interactuar con botones y otros elementos visuales. Integración: Puedes utilizar las bibliotecas de ROS para hacer las llamadas al nodo cliente y enviar las instrucciones de manera dinámica. Ventajas: Te ofrece más flexibilidad y control sobre el diseño de la interfaz.
  3. MATLAB y Simulink Descripción: Si bien mencionaste que no quieres simulación, puedes utilizar MATLAB y Simulink para crear una interfaz gráfica que envíe instrucciones al robot sin necesidad de simular. Utiliza bloques de funcionalidad que se conecten directamente a tu nodo cliente. Integración: Puedes utilizar el ROS Toolbox para la comunicación directa entre la interfaz y el robot.
  4. Tkinter (Python) Descripción: Si prefieres trabajar en Python, puedes utilizar Tkinter para crear una interfaz gráfica simple con botones que envíen instrucciones a tu nodo cliente. Integración: Puedes hacer llamadas a los servicios de ROS desde Python para enviar las instrucciones directamente. Ventajas: Es sencillo de implementar y muy flexible para crear interfaces personalizadas.
  5. Blockly Descripción: Blockly es una biblioteca de JavaScript que permite crear visualizaciones de programación a través de bloques. Puedes utilizarla para construir una interfaz web donde los usuarios arrastren y suelten bloques que representen las instrucciones que deseas enviar al robot. Integración: Puedes implementar un backend en Python (usando Flask, por ejemplo) que maneje la comunicación con tu nodo cliente de ROS. Cualquiera de estas opciones te permitirá construir una interfaz gráfica donde puedas enviar instrucciones a tu robot de manera intuitiva. La elección dependerá de tu preferencia por la tecnología y la complejidad del proyecto que quieras manejar. Si necesitas más detalles sobre alguna de estas opciones, házmelo saber.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.