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++