## page was renamed from Robotica/ExPlayerClientProgram100 #acl BecariosGrupo:read,write,revert All:read #acl Default All:read = Ejemplo de programa cliente utilizando Player = Independientemente si se quiere manejar el robot real o simulado se tienen que utilizar las [[http://playerstage.sourceforge.net/doc/Player-2.1.0/player/group__clientlibs.html | 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 [[http://playerstage.sourceforge.net/doc/Player-2.1.0/player/group__player__clientlib__cplusplus__proxies.html | Proxies]] que para ''position2d'' es [[http://playerstage.sourceforge.net/doc/Player-2.1.0/player/classPlayerCc_1_1Position2dProxy.html | Position2dProxy]] (otro ejemplo es ''laser'' [[http://playerstage.sourceforge.net/doc/Player-2.1.0/player/classPlayerCc_1_1LaserProxy.html | LaserProxy]]). El siguiente código muestra el manejo del proxy position2d. {{{ 1 #include 2 #include 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++``