Revision: 8566
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8566&view=rev
Author:   rtv
Date:     2010-03-09 09:24:54 +0000 (Tue, 09 Mar 2010)

Log Message:
-----------
unbroke fiducial. working on fasr2

Modified Paths:
--------------
    code/stage/trunk/examples/ctrl/fasr2.cc
    code/stage/trunk/libstage/model_fiducial.cc
    code/stage/trunk/worlds/fasr2.world

Modified: code/stage/trunk/examples/ctrl/fasr2.cc
===================================================================
--- code/stage/trunk/examples/ctrl/fasr2.cc     2010-03-09 02:23:16 UTC (rev 
8565)
+++ code/stage/trunk/examples/ctrl/fasr2.cc     2010-03-09 09:24:54 UTC (rev 
8566)
@@ -12,7 +12,7 @@
 const double minfrontdistance = 0.7;  
 const double stopdist = 0.5;
 const int avoidduration = 10;
-const int workduration = 20;
+//const int workduration = 20;
 const int PAYLOAD = 1;
 
 //const int TRAIL_LENGTH_MAX = 500;
@@ -275,9 +275,8 @@
         fiducial->AddUpdateCallback( (stg_model_callback_t)FiducialUpdate, 
this );              
         
         // we subscribe to the ranger device only while undocking (i.e. 
backing up)
-        ranger->AddUpdateCallback( (stg_model_callback_t)RangerUpdate, this ); 
         
+        //ranger->AddUpdateCallback( (stg_model_callback_t)RangerUpdate, this 
);                        
         
-        
         pos->AddVisualizer( &graphvis, true );
         
         if( map_data == NULL )
@@ -383,6 +382,11 @@
                {
                  double a_goal = normalize( charger_bearing );                 
          
                
+                       double orient = normalize( M_PI - (charger_bearing - 
charger_heading) );
+                       //printf( "val %.2f\n", orient );
+
+                       a_goal -= 2.0 * orient;
+
                  //            if( pos->Stalled() )
                  //              {
                  //                     puts( "stalled. stopping" );
@@ -393,11 +397,11 @@
                  // a_goal *= 2.0;
 
                  if( charger_range > 0.45 )
-                        {
-                               if( !ObstacleAvoid() )
-                                 {
-                                        pos->SetXSpeed( cruisespeed );         
                                 
-                                        pos->SetTurnSpeed( a_goal );
+                               {
+                                       if( !ObstacleAvoid() )
+                                               {
+                                                       pos->SetXSpeed( 
cruisespeed );                                           
+                                                       pos->SetTurnSpeed( 
a_goal );
                                  }
                         }
                  else  
@@ -426,32 +430,44 @@
                  //printf( "fully charged, now back to work\n" );
 
                  ranger->Subscribe(); // enable the sonar to see behind us
+                       fiducial->Unsubscribe(); 
                  mode = MODE_UNDOCK;
                }
   }
 
-  
+
   void UnDock()
   {
-        const stg_meters_t back_off_distance = 0.6;
+        const stg_meters_t back_off_distance = 0.4;
         const stg_meters_t back_off_speed = -0.02;
+        const stg_meters_t wait_distance = 0.2;
+        const unsigned int BACK_SENSOR_FIRST = 10;
+        const unsigned int BACK_SENSOR_LAST = 13;
         
-        // back up a bit
+        // stay put while anything is close behind 
+        for( unsigned int s = BACK_SENSOR_FIRST; s <= BACK_SENSOR_LAST; ++s )
+                if( ranger->sensors[s].range < wait_distance) 
+                        {
+                                pos->Say( "Waiting..." );
+                                pos->SetXSpeed( 0.0 );
+                                return;
+                        }      
+        
+        pos->Say( "" );
         if( charger_range < back_off_distance )
-               pos->SetXSpeed( back_off_speed );
+                {
+                        pos->SetXSpeed( back_off_speed );
+                }
         else
-               pos->SetXSpeed( 0.0 );
-        
-        if( charger_range > back_off_distance )         
-               {
-                 mode = MODE_WORK;  
-                 SetGoal( pos->GetFlagCount() ? sink : source );
-
-                 fiducial->Unsubscribe();
-                 ranger->Unsubscribe();
-               }
-  }
-
+                {
+                        mode = MODE_WORK;  
+                        SetGoal( pos->GetFlagCount() ? sink : source );
+                        
+                        fiducial->Unsubscribe();
+                        ranger->Unsubscribe();
+                }
+       }
+       
   bool ObstacleAvoid()
   {
         bool obstruction = false;
@@ -547,7 +563,6 @@
                  if( verbose ) puts( "Cruise" );
                
                  //avoidcount = 0;
-                 pos->SetXSpeed( cruisespeed );          
                
                  Pose pose = pos->GetPose();
                
@@ -598,14 +613,21 @@
                  
                  double a_error = normalize( a_goal - pose.a );
                  pos->SetTurnSpeed(  a_error );
+                       
+                       //double a_error_size = fabs(a_error);
+                       
+                       //if( a_error_size < 1.0 )
+                       //pos->SetXSpeed( (1.0 - a_error_size) *  cruisespeed 
);          
+                       //else
+                       //pos->SetXSpeed( 0.0 );
+                       pos->SetXSpeed( cruisespeed );
                }  
   }
 
   
   static int RangerUpdate( ModelRanger* ranger, Robot* robot )
   {
-        printf( "%s RANGER UPDATE", ranger->Token() );
-
+               //printf( "%s RANGER UPDATE", ranger->Token() );
         return 0;
   }
 

Modified: code/stage/trunk/libstage/model_fiducial.cc
===================================================================
--- code/stage/trunk/libstage/model_fiducial.cc 2010-03-09 02:23:16 UTC (rev 
8565)
+++ code/stage/trunk/libstage/model_fiducial.cc 2010-03-09 09:24:54 UTC (rev 
8566)
@@ -42,7 +42,7 @@
   range_max 8.0
   range_max_id 5.0
   fov 3.14159
-  ignore_zloc
+  ignore_zloc 0
 
   # model properties
   size [ 0.1 0.1 0.1 ]
@@ -60,8 +60,8 @@
 - fov <float>
   the angular field of view of the scanner, in radians.
 - ignore_zloc <1/0>\n
-  default is 0.  When set to 1, the fiducial finder ignores the z component 
when checking a fiducial.  Using the default behaviour, a short robot would not 
been seen
-  by a tall robot's fiducial finder.  With this flag set to 1, the fiducial 
finder will see the shorter robot.   
+  default is 0.  When set to 1, the fiducial finder ignores the z component 
when checking a fiducial.  Using the default behaviour, a short object would 
not been seen
+  by a fiducial finder placed on top of a tall robot.  With this flag set to 
1, the fiducial finder will see the shorter robot.   
  */
   
   ModelFiducial::ModelFiducial( World* world, 
@@ -105,7 +105,6 @@
                                                                                
                 const void* dummy )
 {
   (void)dummy; // avoid warning about unused var
-
   return( ! finder->IsRelated( candidate ) );
 }      
 
@@ -114,14 +113,11 @@
 {
        //PRINT_DEBUG2( "Fiducial %s is testing model %s", token, him->Token() 
);
 
-       // don't consider models with invalid returns  
-       if( him->vis.fiducial_return == 0 )
-       {
-               //PRINT_DEBUG1( "  but model %s has a zero fiducial ID", 
him->Token());
-               return;
-       }
-
+       // only non-zero IDs should ever be checked
+       assert( him->vis.fiducial_return != 0 );
+       
        // check to see if this neighbor has the right fiducial key
+       // if keys are used extensively, then perhaps a vector per key would be 
faster
        if( vis.fiducial_key != him->vis.fiducial_key )
        {
                //PRINT_DEBUG1( "  but model %s doesn't match the fiducial 
key", him->Token());
@@ -138,7 +134,7 @@
 
        //  printf( "range to target %.2f m (
 
-       if( range > max_range_anon )
+       if( range >= max_range_anon )
        {
                //PRINT_DEBUG3( "  but model %s is %.2f m away, outside my 
range of %.2f m", 
                //          him->Token(),
@@ -164,23 +160,40 @@
 
 
        //printf( "bearing %.2f\n", RTOD(bearing) );
-       
+
+       //If we've gotten to this point, a few things are true:
+       // 1. The fiducial is in the field of view of the finder.
+       // 2. The fiducial is in range of the finder.
+       //At this point the purpose of the ray trace is to start at the finder 
and see if there is anything
+       //in between the finder and the fiducial.  If we simply trace out to 
the distance we know the finder
+       //is at, then the resulting ray.mod can be one of three things:
+       // 1. A pointer to the model we're tracing to.  In this case the model 
is at the right Zloc to be 
+       //    returned by the ray tracer.
+       // 2. A pointer to another model that blocked the ray.
+       // 3. NULL.  If it's null, then it means that the ray traced to where 
the fiducial should be but
+       //    it's zloc was such that the ray didn't hit it.  However, we DO 
know its there, so we can 
+       //    return this as a hit.
+
+       //printf( "range %.2f\n", range );
+
        stg_raytrace_result_t ray( Raytrace( dtheta,
-                                                                               
                         max_range_anon,
-                                                                               
                         fiducial_raytrace_match,
-                                                                               
                         NULL,
-                                                                               
                         ! ignore_zloc ) );
+                                                                               
                                                                         
max_range_anon, // TODOscan only as far as the object
+                                                                               
                                                                         
fiducial_raytrace_match,
+                                                                               
                                                                         NULL,
+                                                                               
                                                                         true ) 
);
        
-       Model* hitmod( ray.mod );
+       // TODO
+       //if( ignore_zloc && ray.mod == NULL ) // i.e. we didn't hit anything 
*else*
+       //ray.mod = him; // so he was just at the wrong height
        
-       //printf( "ray hit %s and was seeking LOS to %s\n",
-       //        hitmod ? hitmod->Token() : "null",
-       //        him->Token() );
-
+       //printf( "ray hit %s and was seeking LOS to %s\n",
+       //                      ray.mod ? ray.mod->Token() : "null",
+       //                      him->Token() );
+       
        // if it was him, we can see him
-       if( hitmod != him )
-         return;
-
+       if( ray.mod != him )
+               return;
+       
        assert( range >= 0 );
        
        // passed all the tests! record the fiducial hit

Modified: code/stage/trunk/worlds/fasr2.world
===================================================================
--- code/stage/trunk/worlds/fasr2.world 2010-03-09 02:23:16 UTC (rev 8565)
+++ code/stage/trunk/worlds/fasr2.world 2010-03-09 09:24:54 UTC (rev 8566)
@@ -23,9 +23,9 @@
 ( 
   size [ 758.000 809.000 ] 
 
-  center [ -37.456 -47.457 ] 
+  center [ -9.226 10.939 ] 
   rotate [ 0 0 ]
-  scale 194.841 
+  scale 27.308 
   
   show_data 1
   show_flags 1
@@ -128,7 +128,7 @@
 
 define charge_station model
 (  
-  size [ 0.100 0.300 0.100 ]
+  size [ 0.100 0.300 0.300 ]
   color "purple"
   
   laser_return 0
@@ -139,28 +139,29 @@
   #model( color "purple" size [0.100 0.050 0.250] pose [ 0 -0.100 0 0 ] ) 
 
   # the charging block
-  model( 
-    pose [ 0.010 0 0 0 ]
-    color "yellow"
-    size [ 0.050 0.150 0.100 ]
-    joules -1  # provides infinite energy
-    give_watts 2000 
-    # fiducial_return 2 # look for this in the fiducial sensor
+  #model( 
+   # pose [ 0.010 0 0 0 ]
+    #color "yellow"
+    #size [ 0.050 0.150 0.100 ]
+   
+   joules -1  # provides infinite energy
+   give_watts 8000 # high! 
+   fiducial_return 2 # look for this in the fiducial sensor
         
         alwayson 1 # so we give charge without any explicit subscriber
 
-        laser_return 0
-        obstacle_return 0
-   )
+       # laser_return 0
+        #obstacle_return 0
+   #)
 
  # the set-up target
- model( 
-   pose [0.500 0 0 0 ] 
-   color "green"
-   size [0.100 0.100 0.015] 
-   fiducial_return 2 
-   obstacle_return 0
-  )
+ #model( 
+ #  pose [0.500 0 0 0 ] 
+ #  color "green"
+ #  size [0.100 0.100 0.015] 
+  # fiducial_return 2 
+  # obstacle_return 0
+  #)
 
 )
 
@@ -266,7 +267,7 @@
  joules 100000 
  joules_capacity 400000 
  fiducial_return 0
- charging_bump( obstacle_return 0 fiducial( ignore_zloc 1 range_max_id 9 
range_max 9 fov 180 pose [ 0 0 -0.050 0 ] ) )
+ charging_bump( obstacle_return 0 fiducial( ignore_zloc 0 range_max_id 9 
range_max 9 fov 180 pose [ 0 0 -0.050 0 ] ) )
 
  # small speed optimization
  # trail_length 0
@@ -284,26 +285,26 @@
 #define bot autorob( ctrl "fasr2 " )"            
 
 redbot( pose [-11.388 12.267 0 166.581] joules 200000 )
-redbot( pose [-12.867 11.964 0 135.003] joules 200000 )
+redbot( pose [-12.208 11.744 0 135.003] joules 200000 )
 redbot( pose [-12.289 10.814 0 147.497] joules 200000 )
 redbot( pose [-10.642 11.563 0 123.708] joules 200000 )
 redbot( pose [-11.378 11.274 0 143.281] joules 200000 )
 redbot( pose [-10.200 11.012 0 46.529] joules 200000 )
-redbot( pose [-12.921 13.355 0 168.778] joules 200000 )
-redbot( pose [-11.953 13.260 0 163.730] joules 200000 )
+redbot( pose [-13.067 13.575 0 168.778] joules 200000 )
+redbot( pose [-12.466 13.333 0 163.730] joules 200000 )
 redbot( pose [-13.740 12.740 0 157.546] joules 200000 )
 redbot( pose [-14.708 12.643 0 138.616] joules 200000 )
 
-#redbot( pose [-12.145 10.886 0 125.831] joules 100000 )
-#redbot( pose [-12.710 12.157 0 125.831] joules 100000 )
-#redbot( pose [-12.275 12.775 0 125.831] joules 100000 )
-#redbot( pose [-11.461 13.123 0 125.831] joules 100000 )
-#redbot( pose [-10.679 13.036 0 125.831] joules 100000 )
-#redbot( pose [-12.167 13.514 0 125.831] joules 100000 )
-#redbot( pose [-12.992 13.047 0 125.831] joules 100000 )
-#redbot( pose [-13.372 12.243 0 125.831] joules 100000 )
-#redbot( pose [-13.296 11.331 0 125.831] joules 100000 )
-#redbot( pose [-13.944 11.986 0 125.831] joules 100000 )
+redbot( pose [-12.841 10.666 0 125.831] joules 100000 )
+redbot( pose [-12.710 12.157 0 125.831] joules 100000 )
+redbot( pose [-12.275 12.775 0 125.831] joules 100000 )
+redbot( pose [-11.461 13.123 0 125.831] joules 100000 )
+redbot( pose [-10.679 13.036 0 125.831] joules 100000 )
+redbot( pose [-12.277 14.027 0 125.831] joules 100000 )
+redbot( pose [-13.981 13.377 0 125.831] joules 100000 )
+redbot( pose [-13.372 12.243 0 125.831] joules 100000 )
+redbot( pose [-13.296 11.331 0 125.831] joules 100000 )
+redbot( pose [-13.944 11.986 0 125.831] joules 100000 )
 
 #redbot( pose [-14.005 12.947 0 125.831] joules 100000 )
 #redbot( pose [-12.922 13.866 0 125.831] joules 100000 )
@@ -317,26 +318,26 @@
 #redbot( pose [-10.920 11.394 0 125.831] joules 100000 )
 
 bluebot( pose [-13.004 6.811 0 166.511] joules 200000 )
-bluebot( pose [-13.235 8.255 0 175.835] joules 200000 )
+bluebot( pose [-13.272 8.255 0 175.835] joules 200000 )
 bluebot( pose [-12.180 6.527 0 -132.938] joules 200000 )
 bluebot( pose [-9.958 7.989 0 171.172] joules 200000 )
 bluebot( pose [-12.369 9.016 0 170.270] joules 200000 )
-bluebot( pose [-10.799 7.509 0 -157.026] joules 200000 )
+bluebot( pose [-10.945 8.132 0 -157.026] joules 200000 )
 bluebot( pose [-11.453 8.651 0 -120.696] joules 200000 )
 bluebot( pose [-13.876 8.850 0 -177.508] joules 200000 )
-bluebot( pose [-11.314 5.949 0 -139.502] joules 200000 )
+bluebot( pose [-11.753 5.510 0 -139.502] joules 200000 )
 bluebot( pose [-10.242 8.631 0 160.986] joules 200000 )
 
-#bluebot( pose [-10.901 7.503 0 174.453] joules 200000 )
-#bluebot( pose [-12.063 7.960 0 174.453] joules 200000 )
-#bluebot( pose [-12.159 8.673 0 174.453] joules 200000 )
-#bluebot( pose [-12.039 7.399 0 174.453] joules 200000 )
-#bluebot( pose [-12.151 6.782 0 174.453] joules 200000 )
-#bluebot( pose [-11.574 6.213 0 174.453] joules 200000 )
-#bluebot( pose [-10.725 6.173 0 174.453] joules 200000 )
-#bluebot( pose [-10.019 5.829 0 174.453] joules 200000 )
-#bluebot( pose [-12.824 8.232 0 174.453] joules 200000 )
-#bluebot( pose [-9.930 7.369 0 174.453] joules 200000 )
+bluebot( pose [-10.901 7.503 0 174.453] joules 200000 )
+bluebot( pose [-12.063 7.960 0 174.453] joules 200000 )
+bluebot( pose [-12.159 8.673 0 174.453] joules 200000 )
+bluebot( pose [-12.039 7.399 0 174.453] joules 200000 )
+bluebot( pose [-11.455 6.855 0 174.453] joules 200000 )
+bluebot( pose [-11.574 6.213 0 174.453] joules 200000 )
+bluebot( pose [-10.725 6.173 0 174.453] joules 200000 )
+bluebot( pose [-10.019 5.829 0 174.453] joules 200000 )
+bluebot( pose [-12.824 7.756 0 174.453] joules 200000 )
+bluebot( pose [-9.930 7.369 0 174.453] joules 200000 )
 
 #bluebot( pose [-10.706 8.428 0 174.453] joules 200000 )
 #bluebot( pose [-12.069 9.308 0 174.453] joules 200000 )
@@ -360,16 +361,16 @@
 cyanbot( pose [-3.232 17.616 0 52.768] joules 400000 )
 cyanbot( pose [-2.570 20.624 0 20.367] joules 400000 )
 
-#cyanbot( pose [-3.635 20.622 0 -117.456] joules 400000 )
-#cyanbot( pose [-5.346 20.649 0 -117.456] joules 400000 )
-#cyanbot( pose [-4.518 21.397 0 -117.456] joules 400000 )
-#cyanbot( pose [-3.796 21.611 0 -117.456] joules 400000 )
-#cyanbot( pose [-3.074 19.927 0 -117.456] joules 400000 )
-#cyanbot( pose [-2.940 21.424 0 -117.456] joules 400000 )
-#cyanbot( pose [-2.326 20.756 0 -117.456] joules 400000 )
-#cyanbot( pose [-1.898 19.927 0 -117.456] joules 400000 )
-#cyanbot( pose [-1.737 19.125 0 -117.456] joules 400000 )
-#cyanbot( pose [-5.320 17.681 0 -117.456] joules 400000 )
+cyanbot( pose [-3.635 20.622 0 -117.456] joules 400000 )
+cyanbot( pose [-5.346 20.649 0 -117.456] joules 400000 )
+cyanbot( pose [-4.518 21.397 0 -117.456] joules 400000 )
+cyanbot( pose [-3.796 21.611 0 -117.456] joules 400000 )
+cyanbot( pose [-3.074 19.927 0 -117.456] joules 400000 )
+cyanbot( pose [-2.610 21.900 0 -117.456] joules 400000 )
+cyanbot( pose [-1.703 20.756 0 -117.456] joules 400000 )
+cyanbot( pose [-1.898 19.927 0 -117.456] joules 400000 )
+cyanbot( pose [-1.371 19.088 0 -117.456] joules 400000 )
+cyanbot( pose [-5.320 17.681 0 -117.456] joules 400000 )
 
 #cyanbot( pose [-4.708 18.475 0 -117.456] joules 400000 )
 #cyanbot( pose [-5.615 18.687 0 -117.456] joules 400000 )
@@ -382,8 +383,8 @@
 #cyanbot( pose [-2.198 18.082 0 -117.456] joules 400000 )
 #cyanbot( pose [-6.301 18.782 0 -117.456] joules 400000 )
 
-greenbot( pose [-36.953 -46.340 0 -41.980] joules 100000 )
-greenbot( pose [-37.595 -47.441 0 -119.991] joules 100000 )
+greenbot( pose [-43.968 -46.180 0 -41.980] joules 100000 )
+greenbot( pose [-2.601 -46.655 0 -119.991] joules 100000 )
 greenbot( pose [-8.902 2.142 0 -65.139] joules 200000 )
 greenbot( pose [-9.615 2.398 0 -73.426] joules 200000 )
 greenbot( pose [-8.619 0.004 0 -93.488] joules 200000 )
@@ -391,18 +392,18 @@
 greenbot( pose [-10.258 1.202 0 27.802] joules 200000 )
 greenbot( pose [-8.513 0.851 0 -96.070] joules 200000 )
 greenbot( pose [-10.890 1.197 0 160.446] joules 200000 )
-greenbot( pose [-10.591 1.693 0 46.259] joules 200000 )
+greenbot( pose [-11.214 1.949 0 46.259] joules 200000 )
 
-#greenbot( pose [-11.819 1.550 0 44.991] joules 100000 )
-#greenbot( pose [-12.401 2.181 0 44.991] joules 100000 )
-#greenbot( pose [-11.236 3.330 0 44.991] joules 100000 )
-#greenbot( pose [-12.078 3.298 0 44.991] joules 100000 )
-#greenbot( pose [-9.909 2.456 0 44.991] joules 100000 )
-#greenbot( pose [-10.734 4.123 0 44.991] joules 100000 )
-#greenbot( pose [-11.592 4.398 0 44.991] joules 100000 )
-#greenbot( pose [-12.903 2.877 0 44.991] joules 100000 )
-#greenbot( pose [-12.434 1.372 0 44.991] joules 100000 )
-#greenbot( pose [-10.555 3.358 0 44.991] joules 100000 )
+greenbot( pose [-11.819 1.550 0 44.991] joules 100000 )
+greenbot( pose [-12.401 2.181 0 44.991] joules 100000 )
+greenbot( pose [-11.236 3.330 0 44.991] joules 100000 )
+greenbot( pose [-12.078 3.298 0 44.991] joules 100000 )
+greenbot( pose [-10.275 2.456 0 44.991] joules 100000 )
+greenbot( pose [-10.734 4.123 0 44.991] joules 100000 )
+greenbot( pose [-11.592 4.398 0 44.991] joules 100000 )
+greenbot( pose [-12.903 2.877 0 44.991] joules 100000 )
+greenbot( pose [-12.434 1.372 0 44.991] joules 100000 )
+greenbot( pose [-10.555 3.358 0 44.991] joules 100000 )
 
 #greenbot( pose [-9.516 3.311 0 44.991] joules 100000 )
 #greenbot( pose [-12.308 3.949 0 44.991] joules 100000 )
@@ -417,7 +418,7 @@
 
 yellowbot( pose [-15.567 5.300 0 -113.433] joules 200000 )
 yellowbot( pose [-13.218 5.200 0 -105.066] joules 200000 )
-yellowbot( pose [-15.890 6.463 0 -113.959] joules 200000 )
+yellowbot( pose [-16.146 6.573 0 -113.959] joules 200000 )
 yellowbot( pose [-15.829 3.428 0 -100.843] joules 200000 )
 yellowbot( pose [-13.943 3.757 0 -116.077] joules 200000 )
 yellowbot( pose [-13.589 6.170 0 -108.098] joules 200000 )
@@ -426,16 +427,16 @@
 yellowbot( pose [-13.444 3.480 0 -97.678] joules 200000 )
 yellowbot( pose [-16.445 7.660 0 68.821] joules 200000 )
 
-#yellowbot( pose [-17.222 6.291 0 35.145] joules 200000 )
-#yellowbot( pose [-17.885 7.198 0 35.145] joules 200000 )
-#yellowbot( pose [-17.254 8.218 0 35.145] joules 200000 )
-#yellowbot( pose [-17.060 5.498 0 35.145] joules 200000 )
-#yellowbot( pose [-18.047 6.227 0 35.145] joules 200000 )
-#yellowbot( pose [-16.930 4.640 0 35.145] joules 200000 )
-#yellowbot( pose [-17.966 5.417 0 35.145] joules 200000 )
-#yellowbot( pose [-15.927 4.640 0 35.145] joules 200000 )
-#yellowbot( pose [-14.988 4.236 0 35.145] joules 200000 )
-#yellowbot( pose [-15.706 6.151 0 35.145] joules 200000 )
+yellowbot( pose [-17.222 6.291 0 35.145] joules 200000 )
+yellowbot( pose [-17.885 7.198 0 35.145] joules 200000 )
+yellowbot( pose [-17.254 8.218 0 35.145] joules 200000 )
+yellowbot( pose [-17.060 5.498 0 35.145] joules 200000 )
+yellowbot( pose [-18.047 6.227 0 35.145] joules 200000 )
+yellowbot( pose [-16.930 4.640 0 35.145] joules 200000 )
+yellowbot( pose [-17.966 5.417 0 35.145] joules 200000 )
+yellowbot( pose [-15.927 4.640 0 35.145] joules 200000 )
+yellowbot( pose [-14.988 4.236 0 35.145] joules 200000 )
+yellowbot( pose [-15.706 6.151 0 35.145] joules 200000 )
 
 #yellowbot( pose [-16.419 6.225 0 35.145] joules 200000 )
 #yellowbot( pose [-14.574 5.868 0 35.145] joules 200000 )
@@ -459,16 +460,16 @@
 magentabot( pose [-6.752 14.083 0 -101.104] joules 300000 )
 magentabot( pose [-8.752 15.271 0 -131.336] joules 300000 )
 
-#magentabot( pose [-9.099 17.489 0 -143.181] joules 300000 )
-#magentabot( pose [-9.610 15.854 0 -143.181] joules 300000 )
-#magentabot( pose [-9.589 16.569 0 -143.181] joules 300000 )
-#magentabot( pose [-10.059 15.221 0 -143.181] joules 300000 )
-#magentabot( pose [-10.264 16.099 0 -143.181] joules 300000 )
-#magentabot( pose [-9.814 17.325 0 -143.181] joules 300000 )
-#magentabot( pose [-8.180 16.447 0 -143.181] joules 300000 )
-#magentabot( pose [-8.629 17.999 0 -143.181] joules 300000 )
-#magentabot( pose [-9.467 18.142 0 -143.181] joules 300000 )
-#magentabot( pose [-9.079 16.263 0 -143.181] joules 300000 )
+magentabot( pose [-9.099 17.489 0 -143.181] joules 300000 )
+magentabot( pose [-9.610 15.854 0 -143.181] joules 300000 )
+magentabot( pose [-9.589 16.569 0 -143.181] joules 300000 )
+magentabot( pose [-10.059 15.221 0 -143.181] joules 300000 )
+magentabot( pose [-10.264 16.099 0 -143.181] joules 300000 )
+magentabot( pose [-9.814 17.325 0 -143.181] joules 300000 )
+magentabot( pose [-8.180 16.447 0 -143.181] joules 300000 )
+magentabot( pose [-8.629 17.999 0 -143.181] joules 300000 )
+magentabot( pose [-9.467 18.142 0 -143.181] joules 300000 )
+magentabot( pose [-9.079 16.263 0 -143.181] joules 300000 )
 
 #magentabot( pose [-9.196 15.409 0 -143.181] joules 300000 )
 #magentabot( pose [-9.598 14.812 0 -143.181] joules 300000 )


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to