Bienvenido: Ingresar
location: Robotica / PlayerStageRoMAA / PlayerDriverRoMAA1 / ClientEx

Ejemplo de programa cliente utilizando Player

Independientemente si se quiere manejar el robot real o simulado se tienen que utilizar las librerias clientes de Player. Actualmente la única interface que soporta el driver de RoMAA (para el robot real) es position2d. En la simulación hay modelos que incluyen un laser. Del lado del cliente estas interfaces se manejan mediantes Proxies que para position2d es Position2dProxy (otro ejemplo es laser LaserProxy).

El siguiente código muestra el manejo del proxy position2d.

  1 #include <iostream>
  2 #include <libplayerc++/playerc++.h>
  3 
  4 int
  5 main( int argc, char *argv[] )
  6 {
  7  // Connect to the local player process on port 6665
  8  PlayerCc::PlayerClient romaa_robot( "localhost", 6665 );
  9 
 10  // Create a position2d proxy
 11  PlayerCc::Position2dProxy romaa_pos2d( &romaa_robot, 0 );
 12 
 13  romaa_pos2d.ResetOdometry();
 14  romaa_pos2d.SetSpeed( 10, 0 );
 15 
 16  for( int i = 0; i < 200; i++ )
 17  {
 18   romaa_robot.Read();
 19   
 ";
 21   std::cout << "px: " << romaa_pos2d.GetXPos() << " - ";
 22   std::cout << "py: " << romaa_pos2d.GetYPos() << " - ";
 23   std::cout << "pa: " << romaa_pos2d.GetYaw() << std::endl;
 24   
 25   usleep(50000);
 26  }
 27  
 28  romaa_pos2d.SetSpeed( 0, 0 );
 29  return 0;
 30 }

Compilar

$ g++ -o example pkg-config --cflags playerc++ example.cpp pkg-config --libs playerc++

None: Robotica/PlayerStageRoMAA/PlayerDriverRoMAA1/ClientEx (última edición 2011-04-20 22:04:57 efectuada por GonzaloPerezPaina)