Revision: 7972
          http://playerstage.svn.sourceforge.net/playerstage/?rev=7972&view=rev
Author:   rtv
Date:     2009-07-10 02:53:00 +0000 (Fri, 10 Jul 2009)

Log Message:
-----------
reduced stuckness of flocking demo

Modified Paths:
--------------
    code/stage/trunk/examples/ctrl/pioneer_flocking.cc

Modified: code/stage/trunk/examples/ctrl/pioneer_flocking.cc
===================================================================
--- code/stage/trunk/examples/ctrl/pioneer_flocking.cc  2009-07-10 02:46:27 UTC 
(rev 7971)
+++ code/stage/trunk/examples/ctrl/pioneer_flocking.cc  2009-07-10 02:53:00 UTC 
(rev 7972)
@@ -107,7 +107,13 @@
                if( robot->closest )
                  turn_speed += FLOCK_WGAIN * robot->closest_heading_error;
         }
-  
+  else
+        {
+               // front not clear. we might be stuck, so wiggle a bit
+               if( fabs(turn_speed) < 0.1 )
+                 turn_speed = drand48();
+        }
+
   robot->position->SetSpeed( forward_speed, side_speed, turn_speed );
 
   return 0;
@@ -117,9 +123,7 @@
 int FiducialUpdate( ModelFiducial* fid, robot_t* robot )
 {      
   // find the closest teammate
-
-  //puts( "fiducial update" );
-    
+  
   double dist = 1e6; // big
   
   robot->closest = NULL;
@@ -137,36 +141,10 @@
   
   if( robot->closest ) // if we saw someone
         {
-               //printf( "model %s see closest %s\n", fid->Token(), 
robot->closest->mod->Token() );
-
                robot->closest_bearing = robot->closest->bearing;
                robot->closest_range = robot->closest->range;
                robot->closest_heading_error = robot->closest->geom.a;
         }
-    
-//   if( (dx == 0) || (dy == 0) )
-//      return 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 
);
-  
-//   // if the front is clear, drive forwards
-//   if( (rgr->sensors[3].range > SAFE_DIST) && // forwards
-//             (rgr->sensors[4].range > SAFE_DIST) &&
-//             (rgr->sensors[5].range > SAFE_DIST/2.0) && //
-//             (rgr->sensors[6].range > SAFE_DIST/4.0) && 
-//             (rgr->sensors[2].range > SAFE_DIST/2.0) && 
-//             (rgr->sensors[1].range > SAFE_DIST/4.0) && 
-//             (fabs( resultant_angle ) < SAFE_ANGLE) )
-//      {
-//             forward_speed = VSPEED;
-//      }
-  
-//   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.

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to