Revision: 6810 http://playerstage.svn.sourceforge.net/playerstage/?rev=6810&view=rev Author: rtv Date: 2008-07-07 21:33:24 -0700 (Mon, 07 Jul 2008)
Log Message: ----------- clean up working towards release Modified Paths: -------------- code/stage/trunk/CMakeLists.txt code/stage/trunk/examples/ctrl/CMakeLists.txt Added Paths: ----------- code/stage/trunk/worlds/benchmark/expand.cc Removed Paths: ------------- code/stage/trunk/examples/ctrl/expand.cc code/stage/trunk/worlds/benchmark/benchmark.cc Modified: code/stage/trunk/CMakeLists.txt =================================================================== --- code/stage/trunk/CMakeLists.txt 2008-07-08 04:29:12 UTC (rev 6809) +++ code/stage/trunk/CMakeLists.txt 2008-07-08 04:33:24 UTC (rev 6810) @@ -103,11 +103,12 @@ # work through these subdirs ADD_SUBDIRECTORY(libstage) -ADD_SUBDIRECTORY(examples) IF ( PLAYER_FOUND ) ADD_SUBDIRECTORY(libstageplugin) ENDIF ( PLAYER_FOUND ) +ADD_SUBDIRECTORY(examples) ADD_SUBDIRECTORY(assets) +ADD_SUBDIRECTORY(worlds) Modified: code/stage/trunk/examples/ctrl/CMakeLists.txt =================================================================== --- code/stage/trunk/examples/ctrl/CMakeLists.txt 2008-07-08 04:29:12 UTC (rev 6809) +++ code/stage/trunk/examples/ctrl/CMakeLists.txt 2008-07-08 04:33:24 UTC (rev 6810) @@ -1,6 +1,5 @@ SET( PLUGINS - expand fasr lasernoise sink Deleted: code/stage/trunk/examples/ctrl/expand.cc =================================================================== --- code/stage/trunk/examples/ctrl/expand.cc 2008-07-08 04:29:12 UTC (rev 6809) +++ code/stage/trunk/examples/ctrl/expand.cc 2008-07-08 04:33:24 UTC (rev 6810) @@ -1,121 +0,0 @@ -///////////////////////////////// -// File: stest.c -// Desc: Stage library test program -// Created: 2004.9.15 -// Author: Richard Vaughan <[EMAIL PROTECTED]> -// CVS: $Id: stest.cc,v 1.3 2008-02-01 03:11:02 rtv Exp $ -// License: GPL -///////////////////////////////// - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "stage.hh" -using namespace Stg; - -typedef struct -{ - StgModelLaser* laser; - StgModelPosition* position; - StgModelRanger* ranger; -} robot_t; - -#define VSPEED 0.5 // meters per second -#define WGAIN 1.5 // turn speed gain -#define SAFE_DIST 0.6 // meters -#define SAFE_ANGLE 1 // radians - -// forward declare -int RangerUpdate( StgModel* mod, robot_t* robot ); - -// Stage calls this when the model starts up -extern "C" int Init( StgModel* mod ) -{ - robot_t* robot = new robot_t; - robot->position = (StgModelPosition*)mod; - - // subscribe to the ranger, which we use for navigating - robot->ranger = (StgModelRanger*)mod->GetModel( "ranger:0" ); - assert( robot->ranger ); - robot->ranger->Subscribe(); - - // ask Stage to call into our ranger update function - robot->ranger->AddUpdateCallback( (stg_model_callback_t)RangerUpdate, robot ); - - // subscribe to the laser, though we don't use it for navigating - //robot->laser = (StgModelLaser*)mod->GetModel( "laser:0" ); - //assert( robot->laser ); - //robot->laser->Subscribe(); - - return 0; //ok -} - -int RangerUpdate( StgModel* mod, robot_t* robot ) -{ - StgModelRanger* rgr = robot->ranger; - - if( rgr->samples == NULL ) - return 0; - - // compute the vector sum of the sonar ranges - double dx=0, dy=0; - - for( unsigned int s=0; s< rgr->sensor_count; s++ ) - { - double srange = rgr->samples[s]; - - dx += srange * cos( rgr->sensors[s].pose.a ); - dy += srange * sin( rgr->sensors[s].pose.a ); - - //printf( "sensor %d angle= %.2f\n", s, rgr->sensors[s].pose.a ); - } - - if( (dx == 0) || (dy == 0) ) - return 0; - - assert( dy != 0 ); - assert( dx != 0 ); - - double resultant_angle = atan2( dy, dx ); - double forward_speed = 0.0; - double side_speed = 0.0; - double turn_speed = WGAIN * resultant_angle; - - //printf( "resultant %.2f turn_speed %.2f\n", resultant_angle, turn_speed ); - - int forward = 0 ; - // if the front is clear, drive forwards - if( (rgr->samples[0] > SAFE_DIST) && - (rgr->samples[1] > SAFE_DIST/2.0) && - (rgr->samples[2] > SAFE_DIST/5.0) && - (rgr->samples[15] > SAFE_DIST/2.0) && - (rgr->samples[14] > SAFE_DIST/5.0) && - (fabs( resultant_angle ) < SAFE_ANGLE) ) - { - forward_speed = VSPEED; - } - - //printf( "forward angle = %.2f\n", rgr->sensors[forward].pose.a ); - - // // send a command to the robot - // stg_velocity_t vel; - // bzero(&vel,sizeof(vel)); - // vel.x = forward_speed; - // vel.y = side_speed; - // vel.z = 0; - // vel.a = turn_speed; - - //printf( "robot %s [%.2f %.2f %.2f %.2f]\n", - //robots[i].position->Token(), vel.x, vel.y, vel.z, vel.a ); - - // uint32_t bcount=0; - //stg_blobfinder_blob_t* blobs = robots[i].blobfinder->GetBlobs( &bcount ); - - //printf( "robot %s sees %u blobs\n", robots[i].blobfinder->Token(), bcount ); - - robot->position->SetSpeed( forward_speed, side_speed, turn_speed ); - - return 0; -} - Deleted: code/stage/trunk/worlds/benchmark/benchmark.cc =================================================================== --- code/stage/trunk/worlds/benchmark/benchmark.cc 2008-07-08 04:29:12 UTC (rev 6809) +++ code/stage/trunk/worlds/benchmark/benchmark.cc 2008-07-08 04:33:24 UTC (rev 6810) @@ -1,121 +0,0 @@ -///////////////////////////////// -// File: stest.c -// Desc: Stage library test program -// Created: 2004.9.15 -// Author: Richard Vaughan <[EMAIL PROTECTED]> -// CVS: $Id: stest.cc,v 1.3 2008-02-01 03:11:02 rtv Exp $ -// License: GPL -///////////////////////////////// - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "stage.hh" -using namespace Stg; - -typedef struct -{ - StgModelLaser* laser; - StgModelPosition* position; - StgModelRanger* ranger; -} robot_t; - -#define VSPEED 0.5 // meters per second -#define WGAIN 1.5 // turn speed gain -#define SAFE_DIST 0.6 // meters -#define SAFE_ANGLE 1 // radians - -// forward declare -int RangerUpdate( StgModel* mod, robot_t* robot ); - -// Stage calls this when the model starts up -extern "C" int Init( StgModel* mod ) -{ - robot_t* robot = new robot_t; - robot->position = (StgModelPosition*)mod; - - // subscribe to the ranger, which we use for navigating - robot->ranger = (StgModelRanger*)mod->GetModel( "ranger:0" ); - assert( robot->ranger ); - robot->ranger->Subscribe(); - - // ask Stage to call into our ranger update function - robot->ranger->AddUpdateCallback( (stg_model_callback_t)RangerUpdate, robot ); - - // subscribe to the laser, though we don't use it for navigating - //robot->laser = (StgModelLaser*)mod->GetModel( "laser:0" ); - //assert( robot->laser ); - //robot->laser->Subscribe(); - - return 0; //ok -} - -int RangerUpdate( StgModel* mod, robot_t* robot ) -{ - StgModelRanger* rgr = robot->ranger; - - if( rgr->samples == NULL ) - return 0; - - // compute the vector sum of the sonar ranges - double dx=0, dy=0; - - for( unsigned int s=0; s< rgr->sensor_count; s++ ) - { - double srange = rgr->samples[s]; - - dx += srange * cos( rgr->sensors[s].pose.a ); - dy += srange * sin( rgr->sensors[s].pose.a ); - - //printf( "sensor %d angle= %.2f\n", s, rgr->sensors[s].pose.a ); - } - - if( (dx == 0) || (dy == 0) ) - return 0; - - assert( dy != 0 ); - assert( dx != 0 ); - - double resultant_angle = atan2( dy, dx ); - double forward_speed = 0.0; - double side_speed = 0.0; - double turn_speed = WGAIN * resultant_angle; - - //printf( "resultant %.2f turn_speed %.2f\n", resultant_angle, turn_speed ); - - int forward = 0 ; - // if the front is clear, drive forwards - if( (rgr->samples[0] > SAFE_DIST) && - (rgr->samples[1] > SAFE_DIST/2.0) && - (rgr->samples[2] > SAFE_DIST/5.0) && - (rgr->samples[15] > SAFE_DIST/2.0) && - (rgr->samples[14] > SAFE_DIST/5.0) && - (fabs( resultant_angle ) < SAFE_ANGLE) ) - { - forward_speed = VSPEED; - } - - //printf( "forward angle = %.2f\n", rgr->sensors[forward].pose.a ); - - // // send a command to the robot - // stg_velocity_t vel; - // bzero(&vel,sizeof(vel)); - // vel.x = forward_speed; - // vel.y = side_speed; - // vel.z = 0; - // vel.a = turn_speed; - - //printf( "robot %s [%.2f %.2f %.2f %.2f]\n", - //robots[i].position->Token(), vel.x, vel.y, vel.z, vel.a ); - - // uint32_t bcount=0; - //stg_blobfinder_blob_t* blobs = robots[i].blobfinder->GetBlobs( &bcount ); - - //printf( "robot %s sees %u blobs\n", robots[i].blobfinder->Token(), bcount ); - - robot->position->SetSpeed( forward_speed, side_speed, turn_speed ); - - return 0; -} - Copied: code/stage/trunk/worlds/benchmark/expand.cc (from rev 6809, code/stage/trunk/worlds/benchmark/benchmark.cc) =================================================================== --- code/stage/trunk/worlds/benchmark/expand.cc (rev 0) +++ code/stage/trunk/worlds/benchmark/expand.cc 2008-07-08 04:33:24 UTC (rev 6810) @@ -0,0 +1,121 @@ +///////////////////////////////// +// File: stest.c +// Desc: Stage library test program +// Created: 2004.9.15 +// Author: Richard Vaughan <[EMAIL PROTECTED]> +// CVS: $Id: stest.cc,v 1.3 2008-02-01 03:11:02 rtv Exp $ +// License: GPL +///////////////////////////////// + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "stage.hh" +using namespace Stg; + +typedef struct +{ + StgModelLaser* laser; + StgModelPosition* position; + StgModelRanger* ranger; +} robot_t; + +#define VSPEED 0.5 // meters per second +#define WGAIN 1.5 // turn speed gain +#define SAFE_DIST 0.6 // meters +#define SAFE_ANGLE 1 // radians + +// forward declare +int RangerUpdate( StgModel* mod, robot_t* robot ); + +// Stage calls this when the model starts up +extern "C" int Init( StgModel* mod ) +{ + robot_t* robot = new robot_t; + robot->position = (StgModelPosition*)mod; + + // subscribe to the ranger, which we use for navigating + robot->ranger = (StgModelRanger*)mod->GetModel( "ranger:0" ); + assert( robot->ranger ); + robot->ranger->Subscribe(); + + // ask Stage to call into our ranger update function + robot->ranger->AddUpdateCallback( (stg_model_callback_t)RangerUpdate, robot ); + + // subscribe to the laser, though we don't use it for navigating + //robot->laser = (StgModelLaser*)mod->GetModel( "laser:0" ); + //assert( robot->laser ); + //robot->laser->Subscribe(); + + return 0; //ok +} + +int RangerUpdate( StgModel* mod, robot_t* robot ) +{ + StgModelRanger* rgr = robot->ranger; + + if( rgr->samples == NULL ) + return 0; + + // compute the vector sum of the sonar ranges + double dx=0, dy=0; + + for( unsigned int s=0; s< rgr->sensor_count; s++ ) + { + double srange = rgr->samples[s]; + + dx += srange * cos( rgr->sensors[s].pose.a ); + dy += srange * sin( rgr->sensors[s].pose.a ); + + //printf( "sensor %d angle= %.2f\n", s, rgr->sensors[s].pose.a ); + } + + if( (dx == 0) || (dy == 0) ) + return 0; + + assert( dy != 0 ); + assert( dx != 0 ); + + double resultant_angle = atan2( dy, dx ); + double forward_speed = 0.0; + double side_speed = 0.0; + double turn_speed = WGAIN * resultant_angle; + + //printf( "resultant %.2f turn_speed %.2f\n", resultant_angle, turn_speed ); + + int forward = 0 ; + // if the front is clear, drive forwards + if( (rgr->samples[0] > SAFE_DIST) && + (rgr->samples[1] > SAFE_DIST/2.0) && + (rgr->samples[2] > SAFE_DIST/5.0) && + (rgr->samples[15] > SAFE_DIST/2.0) && + (rgr->samples[14] > SAFE_DIST/5.0) && + (fabs( resultant_angle ) < SAFE_ANGLE) ) + { + forward_speed = VSPEED; + } + + //printf( "forward angle = %.2f\n", rgr->sensors[forward].pose.a ); + + // // send a command to the robot + // stg_velocity_t vel; + // bzero(&vel,sizeof(vel)); + // vel.x = forward_speed; + // vel.y = side_speed; + // vel.z = 0; + // vel.a = turn_speed; + + //printf( "robot %s [%.2f %.2f %.2f %.2f]\n", + //robots[i].position->Token(), vel.x, vel.y, vel.z, vel.a ); + + // uint32_t bcount=0; + //stg_blobfinder_blob_t* blobs = robots[i].blobfinder->GetBlobs( &bcount ); + + //printf( "robot %s sees %u blobs\n", robots[i].blobfinder->Token(), bcount ); + + robot->position->SetSpeed( forward_speed, side_speed, turn_speed ); + + return 0; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Playerstage-commit mailing list Playerstage-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/playerstage-commit