Difference between revisions of "Tutorial yarp"

From Asociación de Robótica UC3M
Jump to navigation Jump to search
Line 1: Line 1:
A continuación, presentamos un mini-tutorial, destinado a establecer las comunicaciones en un entorno Yarp. La organización está basada en pequeñas lecciones que explican los primeros pasos para comprender Yarp. Para más información existe, en el apartado tutoriales, un enlace a la guía oficial de Yarp. Requisitos: Se supone un mínimo conocimiento de sistemas Linux, y de C++.
+
A continuación, presentamos un mini-tutorial, destinado a establecer las comunicaciones en un entorno '''Yarp'''. La organización está basada en pequeñas lecciones que explican los primeros pasos para comprender Yarp. Para más información existe, en el apartado tutoriales, un enlace a la guía oficial de Yarp.  
 +
 
 +
'''Requisitos''': Se supone un mínimo conocimiento de sistemas '''Linux''', y de '''C++'''.
  
 
=== Lección 1: "yarp server", "yarp write", y "yarp read" ===
 
=== Lección 1: "yarp server", "yarp write", y "yarp read" ===
  
consola1~$ yarp server
+
Abre una terminal en un sistema Linux (que llamaremos consola(numero)) y sigue estos pasos:
  
consola2~$ yarp read /read
+
* consola1~$ yarp server
  
consola3~$ yarp write /write /read
+
* consola2~$ yarp read /read
 +
 
 +
* consola3~$ yarp write /write /read
  
 
Ahora escribimos (casi) cualquier cosa en consola3 y vemos cómo aparece mágicamente en consola2.
 
Ahora escribimos (casi) cualquier cosa en consola3 y vemos cómo aparece mágicamente en consola2.
Line 13: Line 17:
 
=== Lección 2: "yarp read" con función de "quit" ===
 
=== Lección 2: "yarp read" con función de "quit" ===
  
Paso 1) Crea un archivo llamado "loquesea.cpp" con este código:
+
Crea un archivo llamado "loquesea.cpp" con este código:
  
 
  #include <yarp/os/Network.h>
 
  #include <yarp/os/Network.h>
Line 35: Line 39:
 
  }
 
  }
  
Paso 2) Abre una consola (que llamaremos consola1) en donde tengas ese archivo.
+
Abre una consola (que llamaremos consola1) en donde tengas ese archivo.
consola1~$ yarp cmake
+
 
consola1~$ mkdir build; cd build; cmake ..; make
+
* consola1~$ yarp cmake
consola2~$ yarp server
+
 
consola1~$ ./yarpy
+
* consola1~$ mkdir build; cd build; cmake ..; make
 +
 
 +
* consola2~$ yarp server
 +
 
 +
* consola1~$ ./yarpy
  
consola3~$ yarp write /write /read
+
* consola3~$ yarp write /write /read
  
Paso 3) Ahora escribimos (casi) cualquier cosa en consola3 y vemos cómo aparece mágicamente en consola1. Si escribimos "quit" en la consola3, vemos que el módulo de la consola1 se cierra, tal y como está explícito en el código que le hemos implementado.
+
Ahora escribimos (casi) cualquier cosa en consola3 y vemos cómo aparece mágicamente en consola1. Si escribimos "quit" en la consola3, vemos que el módulo de la consola1 se cierra, tal y como está explícito en el código que le hemos implementado.

Revision as of 12:39, 10 November 2011

A continuación, presentamos un mini-tutorial, destinado a establecer las comunicaciones en un entorno Yarp. La organización está basada en pequeñas lecciones que explican los primeros pasos para comprender Yarp. Para más información existe, en el apartado tutoriales, un enlace a la guía oficial de Yarp.

Requisitos: Se supone un mínimo conocimiento de sistemas Linux, y de C++.

Lección 1: "yarp server", "yarp write", y "yarp read"

Abre una terminal en un sistema Linux (que llamaremos consola(numero)) y sigue estos pasos:

  • consola1~$ yarp server
  • consola2~$ yarp read /read
  • consola3~$ yarp write /write /read

Ahora escribimos (casi) cualquier cosa en consola3 y vemos cómo aparece mágicamente en consola2.

Lección 2: "yarp read" con función de "quit"

Crea un archivo llamado "loquesea.cpp" con este código:

#include <yarp/os/Network.h>
#include <yarp/os/Port.h>
#include <yarp/os/Bottle.h>
#include <stdio.h>
using namespace yarp::os;
int main() {
   Network yarp;
   Bottle bot;
   Port input;
   input.open("/read");
   while(1) {
       input.read(bot);
       printf("Got message: %s\n", bot.toString().c_str());
       // Now exit the loop if first element (this is, 0), treated as a string, equals "quit":
       if(bot.get(0).asString() == "quit") break;
   }
   input.close();
   return 0;
}

Abre una consola (que llamaremos consola1) en donde tengas ese archivo.

  • consola1~$ yarp cmake
  • consola1~$ mkdir build; cd build; cmake ..; make
  • consola2~$ yarp server
  • consola1~$ ./yarpy
  • consola3~$ yarp write /write /read

Ahora escribimos (casi) cualquier cosa en consola3 y vemos cómo aparece mágicamente en consola1. Si escribimos "quit" en la consola3, vemos que el módulo de la consola1 se cierra, tal y como está explícito en el código que le hemos implementado.