Difference between revisions of "Controlling the fakebot from code"

From Wiki for iCub and Friends
Jump to: navigation, search
Line 1: Line 1:
 
This example shows how to send commands to the fake robot.
 
This example shows how to send commands to the fake robot.
  
  int main() {
+
  #include <yarp/os/Network.h>
 +
  #include <yarp/os/Port.h>
 +
  #include <yarp/os/Bottle.h>
 +
  #include <yarp/os/BufferedPort.h>
 +
  #include <yarp/os/Time.h>
 +
  //
 +
  using namespace yarp::os;
 +
  using namespace yarp;
 +
  //
 +
  int main() {
 
       // Initialize YARP - some OSes need network and time service initialization
 
       // Initialize YARP - some OSes need network and time service initialization
 
       Network::init();
 
       Network::init();
 
       //
 
       //
 
       // Create a port you will use to send commands to the bot
 
       // Create a port you will use to send commands to the bot
       Port out;
+
       BufferedPort<Bottle> out;
 
       //
 
       //
 
       // Name the ports
 
       // Name the ports
       out.open("/USERNAME/out");
+
       out.open("/nat/out");
 
       //
 
       //
 
       // Connect the ports so that anything written from /out arrives to /in
 
       // Connect the ports so that anything written from /out arrives to /in
       Network::connect("/USERNAME/out","/fakebot/motor/rpc:i");
+
       Network::connect("/nat/out","/fakebot/motor/rpc:i");
 
       //
 
       //
 
       Bottle& outBot1 = out.prepare();  // Get the object
 
       Bottle& outBot1 = out.prepare();  // Get the object
Line 18: Line 27:
 
       outBot1.addString("pos"); // put "pos" command in the bottle
 
       outBot1.addString("pos"); // put "pos" command in the bottle
 
       outBot1.addInt(0); //control joint 0
 
       outBot1.addInt(0); //control joint 0
       outBot1.addInt(80); //move to 80
+
       outBot1.addInt(-80); //move to 80
 
       printf("Writing bottle 1 (%s)\n", outBot1.toString().c_str());
 
       printf("Writing bottle 1 (%s)\n", outBot1.toString().c_str());
 
       out.write();                      // Now send it on its way
 
       out.write();                      // Now send it on its way
 
       //
 
       //
 +
      //
 +
      Time::delay(3);
 
       Network::fini(); // This is the reverse of Network::init()
 
       Network::fini(); // This is the reverse of Network::init()
 
       return 0;
 
       return 0;
 
   }
 
   }

Revision as of 13:19, 21 February 2007

This example shows how to send commands to the fake robot.

 #include <yarp/os/Network.h>
 #include <yarp/os/Port.h>
 #include <yarp/os/Bottle.h>
 #include <yarp/os/BufferedPort.h>
 #include <yarp/os/Time.h>
 //
 using namespace yarp::os;
 using namespace yarp;
 //
 int main() {
     // Initialize YARP - some OSes need network and time service initialization
      Network::init();
     //
     // Create a port you will use to send commands to the bot
     BufferedPort<Bottle> out;
     //
     // Name the ports
     out.open("/nat/out");
     //
     // Connect the ports so that anything written from /out arrives to /in
     Network::connect("/nat/out","/fakebot/motor/rpc:i");
     //
     Bottle& outBot1 = out.prepare();   // Get the object
     outBot1.addString("set"); // put "set" command in the bottle
     outBot1.addString("pos"); // put "pos" command in the bottle
     outBot1.addInt(0); //control joint 0
     outBot1.addInt(-80); //move to 80
     printf("Writing bottle 1 (%s)\n", outBot1.toString().c_str());
     out.write();                       // Now send it on its way
     //
     //
     Time::delay(3);
     Network::fini(); // This is the reverse of Network::init()
     return 0;
  }