I am using Player 2.0.4 and Stage 2.0.3 and I am working a project involving inter-robot communication and exchange of robot's position information between them. For this purpose I am using ReadIfWaiting() command which corresponds to non-blocking reading manner, there is no blocking time in order to synhcronize the information exchange between the robots. The problem is that once the communication traffic between the robot becomes intense program crash and prints error message of like this;

playerc error   : poll call failed with error [0:Success]
playerc error   : recv failed with error [Success]
warning : failed to reconnect
terminate called after throwing an instance of 'PlayerCc::PlayerError

I am using 6 robots. My question is that, is Player can not handle such a type of communication (non-blocking) between the robots or did I do something wrong. Here is a code snippet where I am using ReadIfWaiting() command. Here the main robot is robot the other robot is robot1 and I am taking the odometry information of robot1 if it stops. There are also 4 other robots that I perform actions like this.

PlayerClient robot("localhost", 6665);
PlayerClient robot1("localhost", 6666);
Position2dProxy position(&robot, 0);
Position2dProxy position1(&robot1, 0);

Get the position odometry

robot1.ReadIfWaiting();    //Reading in non-blocking manner
Get the position odometry of other robot

Hoping to hear you from near future

Best regards

Salih Burak Akat