Hello fellow users.

I'm back to player and stage after a few years of hiatus.

My last work has been a Dempster-Shafer based hexagonal mapping algorithm.

Didn't work that good as DS tends to saturate as everyone knows but anyway...

I had my nice program reading data from player and stage through the sonar interface.

Was using the simple world having removed the laser to better see the sonars I was plotting.


Now I installed the latest player trunk and latest stage trunk (3.1.0-svn and 4.1.1) and my old program doesn't want to work.

When I launch it, it can't find the sonar interface.

Player reports a request for an unknown interface


warning : skipping subscription to unknown device sonar:0


Now this seems coherent with the fact that the simple.cfg has




   name "stage"

   provides [ "positon2d:0" "ranger:0" "ranger:1" ]

   model "r0"



But if I change the provides with


provides [ "positon2d:0" "sonar:0" "ranger:0" ]


player quits saying


Stage plugin: 6665.sonar.0 is err: error: stage driver doesn't support interface type 5


So apparently stage doesn't support sonar anymore?

I tried reverting to stage 3.2.2, 3.2.1, and even 3.2.0 but got the same results.

If that's the case my program should not compile, at least for how I view it if an interface isn't supported anymore headers shouldn't be available.

But it compiles.


So what am I missing here?

My stupid program does the following


#include <libplayerc/playerc.h>

client = playerc_client_create(NULL, player_host, player_port);

  if (0 != playerc_client_connect(client))

    return 1;


// Create and subscribe to a position2d device.

position2d = playerc_position2d_create(client, 0);

  if (playerc_position2d_subscribe(position2d, PLAYER_OPEN_MODE))

    return 2;



  if (playerc_sonar_subscribe(sonar, PLAYER_OPEN_MODE))

    return 3;




Then lots of geometric calculations with the sonar data.

Any help would be greatly appreciated.



Claudio Carbone