Hello everyone,
I am a student in shanghai jiaotong university,these days I am studying
player stage,Here i have some problems.
for fast running ,I programed in stage ,not used proxy in player.
I have used blobfinder to test some rubbishes , in world file is:
# create another robot
pioneer2dx
(
name "r1"
color "red"
pose [-5.5 -3.5 0 208]
sicklaser()
ctrl "src/imba.so"
# report error-free position in world coordinates
localization "gps"
localization_origin [ 0 0 0 0 ]
blobfinder(
colors_count 2
colors [ "green" "purple" ]
alwayson 1
range 4.0
fov 60
)
)
but when i run my stage program by "stage imbar.wold", the image box with
the robot can see the green color,that means our blobfinder detected a
rubbish but the program output is not.the program is:(in .cc file )
int BlobfinderUpdate( Model* mod, iRobot* robot );
#define MAXROBOT 1000
iRobot* robotRef[MAXROBOT];
//Stage calls this when the model starts up
extern "C" int Init( Model* mod, CtrlArgs* args )
{
iRobot* robot = new iRobot(mod);
robotRef[robot->id] = robot;
robot->pos->AddUpdateCallback( (stg_model_callback_t)PositionUpdate,
robot
);
robot->laser->AddUpdateCallback( (stg_model_callback_t)LaserUpdate,
robot
);
robot->blob->AddUpdateCallback( (stg_model_callback_t)BlobfinderUpdate,
robot);
robot->laser->Subscribe(); // starts the laser updates
robot->pos->Subscribe(); // starts the position updates
robot->blob->Subscribe();//starts the blobfinder updates
return 0; //ok
}
int BlobfinderUpdate(Model* mod,iRobot* robot)
{
std::cout<<"blobfiner"<<std::endl;
uint32_t bcount = 10;
std::cout<<"befor test is blob count is:"<<bcount<<std::endl;//out put
initial count
ModelBlobfinder::Blob* blobtemp = robot->blob->GetBlobs(&bcount);//?have
problem?
std::cout<<"after test is blob count is:"<<bcount<<std::endl;
if(bcount)
{
std::cout<<"blob see "<<bcount<<"blobs"<<std::endl;
std::cout<<"going to clear the RUBBISH"<<std::endl;
robot->pos->SetSpeed(0,0,0);
}
return 0;
}
so after programed "ModelBlobfinder::Blob* blobtemp =
robot->blob->GetBlobs(&bcount); "
the bcount should changed form 10 (initial data) to 1 because detected a
green rubbish.
but the proaram alway outout like this:
blobfiner
befor test is blob count is:10
after test is blob count is:0
the problem trouble me some days ,really need you help ,thank you very much
.
--
View this message in context:
http://old.nabble.com/something-about-Blobfinder-use-in-stage-tp27026928p27026928.html
Sent from the playerstage-gazebo mailing list archive at Nabble.com.
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo