Revision: 8559
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8559&view=rev
Author:   rtv
Date:     2010-02-20 01:20:25 +0000 (Sat, 20 Feb 2010)

Log Message:
-----------
fasr2 demo with basic recharging

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-02-19 21:28:18 UTC (rev 
8558)
+++ code/stage/trunk/examples/ctrl/fasr2.cc     2010-02-20 01:20:25 UTC (rev 
8559)
@@ -14,31 +14,9 @@
 const int avoidduration = 10;
 const int workduration = 20;
 const int PAYLOAD = 1;
-const int TRAIL_LENGTH_MAX = 500;
 
-double have[4][4] = { 
-  //  { -120, -180, 180, 180 }
-  //{ -90, -120, 180, 90 },
-  { 90, 180, 180, 180 },
-  { 90, -90, 180, 90 },
-  { 90, 90, 180, 90 },
-  { 0, 45, 0, 0} 
-};
+//const int TRAIL_LENGTH_MAX = 500;
 
-double need[4][4] = {
-  { -120, -180, 180, 180 },
-  { -90, -120, 180, 90 },
-  { -90, -90, 180, 180 },
-  { -90, -180, -90, -90 }
-};
-
-double refuel[4][4] = {
-  {  0, 0, 45, 120 },
-  { 0,-90, -60, -160 },
-  { -90, -90, 180, 180 },
-  { -90, -180, -90, -90 }
-};
-
 typedef enum {
   MODE_WORK=0,
   MODE_DOCK,
@@ -104,7 +82,7 @@
         FOR_EACH( it, nodes ){ (*it)->Draw(); }
   }
 
-  stg_radians_t GoodDirection( const Pose& pose, stg_meters_t range )
+  bool GoodDirection( const Pose& pose, stg_meters_t range, stg_radians_t& 
heading_result )
   {
         // find the node with the lowest value within range of the given
         // pose and return the absolute heading from pose that node 
@@ -112,9 +90,9 @@
         if( nodes.empty() )
                return 0; // a null guess
         
-
+        
         Node* best_node = NULL;
-
+        
         // find the closest node
         FOR_EACH( it, nodes )
                {
@@ -133,11 +111,14 @@
         if( best_node == NULL )
                {
                  puts( "warning: no nodes in range" );
-                 return 0;
+                 return false;
                }
+        
         //else
-        return atan2( best_node->pose.y - pose.y,
-                                               best_node->pose.x - pose.x );
+        heading_result = atan2( best_node->pose.y - pose.y,
+                                                                        
best_node->pose.x - pose.x );
+
+        return true;
   }
 };
 
@@ -221,6 +202,7 @@
   ModelRanger* ranger;
   ModelFiducial* fiducial;
   Model *source, *sink;
+  Model* fuel_zone;
   int avoidcount, randcount;
   int work_get, work_put;
   bool charger_ahoy;
@@ -229,6 +211,8 @@
   double charger_heading;
   nav_mode_t mode;
 
+  Model* goal;
+
   Graph graph;
   GraphVis graphvis;
   Node* last_node;
@@ -243,13 +227,15 @@
 public:
   Robot( ModelPosition* pos, 
                        Model* source,
-                       Model* sink ) 
+                       Model* sink,
+                       Model* fuel) 
         : pos(pos), 
                laser( (ModelLaser*)pos->GetUnusedModelOfType( "laser" )),
                ranger( (ModelRanger*)pos->GetUnusedModelOfType( "ranger" )),
                fiducial( (ModelFiducial*)pos->GetUnusedModelOfType( "fiducial" 
)),     
                source(source), 
                sink(sink), 
+               fuel_zone(fuel),
                avoidcount(0), 
                randcount(0), 
                work_get(0), 
@@ -259,6 +245,7 @@
                charger_range(0),
                charger_heading(0),
                mode(MODE_WORK),
+               goal(source),
                graph(),
                graphvis( graph ),
                last_node( NULL ),
@@ -283,7 +270,7 @@
         laser->Subscribe();
 
         fiducial->AddUpdateCallback( (stg_model_callback_t)FiducialUpdate, 
this );              
-        fiducial->Subscribe();
+        //fiducial->Subscribe();
         
         //pos->AddFlagIncrCallback( (stg_model_callback_t)FlagIncr, NULL );
         //pos->AddFlagDecrCallback( (stg_model_callback_t)FlagDecr, NULL );
@@ -334,7 +321,7 @@
                         }       
                }
         
-        Plan( source );
+        //( goal );
         //puts("");
   }
   
@@ -400,7 +387,9 @@
                  //              }
                  //            else
 
-                 if( charger_range > 0.5 )
+                 // a_goal *= 2.0;
+
+                 if( charger_range > 0.45 )
                         {
                                if( !ObstacleAvoid() )
                                  {
@@ -423,7 +412,7 @@
                }                         
         else
                {
-                 //printf( "docking but can't see a charger\n" );
+                 printf( "%s docking but can't see a charger\n", pos->Token() 
);
                  pos->Stop();
                  mode = MODE_WORK; // should get us back on track eventually
                }
@@ -439,17 +428,21 @@
   
   void UnDock()
   {
-        const stg_meters_t back_off_distance = 0.3;
-        const stg_meters_t back_off_speed = -0.05;
+        const stg_meters_t back_off_distance = 0.6;
+        const stg_meters_t back_off_speed = -0.02;
         
         // back up a bit
         if( charger_range < back_off_distance )
                pos->SetXSpeed( back_off_speed );
         else
                pos->SetXSpeed( 0.0 );
-  
+        
         if( charger_range > back_off_distance )         
-               mode = MODE_WORK;  
+               {
+                 mode = MODE_WORK;  
+                 SetGoal( pos->GetFlagCount() ? sink : source );
+                 fiducial->Unsubscribe();
+               }
   }
 
   bool ObstacleAvoid()
@@ -530,7 +523,16 @@
         return false; // didn't have to avoid anything
   }
 
-
+  
+  void SetGoal( Model* goal )
+  {
+        if( goal != this->goal )
+               {
+                 this->goal = goal;
+                 Plan( goal );
+               }
+  }
+        
   void Work()
   {
         if( ! ObstacleAvoid() )
@@ -542,38 +544,47 @@
                
                  Pose pose = pos->GetPose();
                
-                 int x = (pose.x + 8) / 4;
-                 int y = (pose.y + 8) / 4;
                
-//               // oh what an awful bug - 5 hours to track this down. When 
using
-//               // this controller in a world larger than 8*8 meters, a_goal 
can
-//               // sometimes be NAN. Causing trouble WAY upstream. 
-//               if( x > 3 ) x = 3;
-//               if( y > 3 ) y = 3;
-//               if( x < 0 ) x = 0;
-//               if( y < 0 ) y = 0;
 
-
-                 //Model* goal = pos->GetFlagCount() ? sink : source;
-                 //Pose gp = goal->GetPose();
-               
-                 //printf( "seeking %s\n", goal->Token() );
-
-                 double a_goal = 
+                 double a_goal = 0;
+                 
                         // dtor( ( pos->GetFlagCount() ) ? have[y][x] : 
need[y][x] );  // map
                         //atan2( gp.y - pose.y, gp.x - pose.x ); // crow flies
                         // use direction of lowest value node within range in 
graph 
 
-                        graph.GoodDirection( pose, 4.0 );
-
+                 
+                 //              Model* goal = fuel_zone;
+                 
+                 if( Hungry() )
+                        SetGoal( fuel_zone );
+                 
+                 while( graph.GoodDirection( pose, 4.0, a_goal ) == 0 )
+                        {
+                               printf( "%s replanning from (%.2f,%.2f) to %s 
at (%.2f,%.2f) in Work()\n", 
+                                                 pos->Token(),
+                                                 pose.x, pose.y,
+                                                 goal->Token(),
+                                                 goal->GetPose().x,
+                                                 goal->GetPose().y );
+                               Plan( goal );
+                        }
+                 
                  // if we are low on juice - find the direction to the 
recharger instead
                  if( Hungry() )                 
                         { 
+                               fiducial->Subscribe();
+
                                //puts( "hungry - using refuel map" );
                                
                                // use the refuel map
-                               a_goal = dtor( refuel[y][x] );
+                               //a_goal = dtor( refuel[y][x] );
                                
+                               while( graph.GoodDirection( pose, 4.0, a_goal ) 
== 0 )
+                                 {
+                                        printf( "%s replanning in Work()\n", 
pos->Token() );
+                                 }
+                               
+                               
                                if( charger_ahoy ) // I see a charger while 
hungry!
                                  mode = MODE_DOCK;
                         }
@@ -621,9 +632,9 @@
   bool Hungry()
   {
         // XX
-        return false;
+        //return false;
 
-        // return( pos->FindPowerPack()->ProportionRemaining() < 0.25 );
+        return( pos->FindPowerPack()->ProportionRemaining() < 0.5 );
   }     
 
   bool Full()
@@ -673,7 +684,7 @@
                  pos->PushFlag( robot->source->PopFlag() );
                  
                  if( pos->GetFlagCount() == PAYLOAD )
-                        robot->Plan( robot->sink ); // we're done working
+                        robot->SetGoal( robot->sink ); // we're done working
                }
         
         // if we're close to the sink we lose a flag
@@ -688,7 +699,7 @@
                  robot->sink->PushFlag( pos->PopFlag() );                
                  
                  if( pos->GetFlagCount() == 0 ) 
-                        robot->Plan( robot->source ); // we're done dropping 
off
+                        robot->SetGoal( robot->source ); // we're done 
dropping off
                }
   
 
@@ -701,32 +712,39 @@
 
   static int FiducialUpdate( ModelFiducial* mod, Robot* robot )
   {    
-               robot->charger_ahoy = false;
-               
-               std::vector<ModelFiducial::Fiducial>& fids = 
mod->GetFiducials();
-               
-               for( unsigned int i = 0; i < fids.size(); i++ )
-                       {                               
+        robot->charger_ahoy = false;
+        
+        std::vector<ModelFiducial::Fiducial>& fids = mod->GetFiducials();
+        
+        ModelFiducial::Fiducial* closest = NULL;               
+        
+        for( unsigned int i = 0; i < fids.size(); i++ )
+               {                               
                  //printf( "fiducial %d is %d at %.2f m %.2f radians\n",
                  //      i, f->id, f->range, f->bearing );             
+                 
+                 ModelFiducial::Fiducial* f = &fids[i];
+                 
+                 // find the closest 
+                 if( f->id == 2 && ( closest == NULL || f->range < 
closest->range )) // I see a charging station
+                        closest = f; 
+               }                                                 
+        
+        if( closest )
+               {                        // record that I've seen it and where 
it is
+                 robot->charger_ahoy = true;
                
-                 if( fids[i].id == 2 ) // I see a charging station
-                               {
-                                       // record that I've seen it and where 
it is
-                                       robot->charger_ahoy = true;
-                                       robot->charger_bearing = 
fids[i].bearing;
-                                       robot->charger_range = fids[i].range;
-                                       robot->charger_heading = fids[i].geom.a;
-                                       
-                                       //printf( "charger at %.2f radians\n", 
robot->charger_bearing );
-                                       break;
-                               }
-               }                                                 
- 
+                 //printf( "AHOY %s\n", robot->pos->Token() );
+
+                 robot->charger_bearing = closest->bearing;
+                 robot->charger_range = closest->range;
+                 robot->charger_heading = closest->geom.a;                     
 
+               }
+        
         return 0; // run again
   }
-
   
+  
   static int FlagIncr( Model* mod, Robot* robot )
  {
         printf( "model %s collected flag\n", mod->Token() );
@@ -741,8 +759,8 @@
 };
 
 
-unsigned int Robot::map_width( 50 );
-unsigned int Robot::map_height( 50 );
+unsigned int Robot::map_width( 60 );
+unsigned int Robot::map_height( 60 );
 uint8_t* Robot::map_data( NULL );
 Model* Robot::map_model( NULL );
 
@@ -780,7 +798,8 @@
   
   new Robot( (ModelPosition*)mod,
                                 mod->GetWorld()->GetModel( words[1] + 
"_source" ),
-                                mod->GetWorld()->GetModel( words[1] + "_sink" 
));
+                                mod->GetWorld()->GetModel( words[1] + "_sink" 
),
+                                mod->GetWorld()->GetModel( "fuel_zone" ) );
 
   return 0; //ok
 }

Modified: code/stage/trunk/libstage/model_fiducial.cc
===================================================================
--- code/stage/trunk/libstage/model_fiducial.cc 2010-02-19 21:28:18 UTC (rev 
8558)
+++ code/stage/trunk/libstage/model_fiducial.cc 2010-02-20 01:20:25 UTC (rev 
8559)
@@ -11,7 +11,7 @@
 //
 ///////////////////////////////////////////////////////////////////////////
 
-//#define DEBUG 1
+#define DEBUG 0
 
 #include "stage.hh"
 #include "option.hh"
@@ -156,7 +156,7 @@
        if( IsRelated( him ) )
                return;
 
-       PRINT_DEBUG1( "  %s is a candidate. doing ray trace", him->Token());
+       //PRINT_DEBUG1( "  %s is a candidate. doing ray trace", him->Token());
 
 
        //printf( "bearing %.2f\n", RTOD(bearing) );
@@ -168,7 +168,7 @@
                                                                                
                         true ) );
        
        Model* hitmod( ray.mod );
-
+       
        //printf( "ray hit %s and was seeking LOS to %s\n",
        //        hitmod ? hitmod->Token() : "null",
        //        him->Token() );
@@ -199,8 +199,8 @@
        // we see value 0
        fid.id = range < max_range_id ? hitmod->vis.fiducial_return : 0;
        
-       PRINT_DEBUG2( "adding %s's value %d to my list of fiducials",
-                                         him->Token(), 
him->vis.fiducial_return );
+       //PRINT_DEBUG2( "adding %s's value %d to my list of fiducials",
+       //                        him->Token(), him->vis.fiducial_return );
        
        fiducials.push_back( fid );
 }      
@@ -210,7 +210,7 @@
 //
 void ModelFiducial::Update( void )
 {
-       PRINT_DEBUG( "fiducial update" );
+  //PRINT_DEBUG( "fiducial update" );
 
        if( subs < 1 )
                return;

Modified: code/stage/trunk/worlds/fasr2.world
===================================================================
--- code/stage/trunk/worlds/fasr2.world 2010-02-19 21:28:18 UTC (rev 8558)
+++ code/stage/trunk/worlds/fasr2.world 2010-02-20 01:20:25 UTC (rev 8559)
@@ -14,18 +14,18 @@
 quit_time 3600 # 1 hour of simulated time
 #quit_time 1800 # hour of simulated time
 
-resolution 0.05
+resolution 0.02
 
 threads 0
 
 # configure the GUI window
 window
 ( 
-  size [ 980.000 1016.000 ] 
+  size [ 758.000 809.000 ] 
 
-  center [ -0.203 -1.107 ] 
+  center [ -42.865 -43.165 ] 
   rotate [ 0 0 ]
-  scale 9.251 
+  scale 51.926 
   
   show_data 1
   show_flags 1
@@ -81,7 +81,7 @@
 )
 
 zone( color "yellow"
-  pose [ -37.146 -39.531 0 0 ]
+  pose [ 0.464 -43.755 0 0 ]
   name "yellow_source"
   ctrl "source"
 )
@@ -105,7 +105,7 @@
 )
 
 zone( color "magenta"
-  pose [ -14.246 -42.150 0 0 ]
+  pose [ -19.859 -42.092 0 0 ]
   name "magenta_source"
   ctrl "source"
 )
@@ -131,44 +131,133 @@
   size [ 0.100 0.300 0.100 ]
   color "purple"
   
+  laser_return 0
+  obstacle_return 0
+
   # side blocks to restrict view angle
-  model( color "purple" size [0.100 0.050 0.250] pose [ 0 0.100 0 0 ] )
-  model( color "purple" size [0.100 0.050 0.250] pose [ 0 -0.100 0 0 ] ) 
+  #model( color "purple" size [0.100 0.050 0.250] pose [ 0 0.100 0 0 ] )
+  #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.200 0.100 ]
+    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
         
         alwayson 1 # so we give charge without any explicit subscriber
+
+        laser_return 0
+        obstacle_return 0
    )
 
 )
 
-#charge_station(  pose [ 7.908 -2.510 0 0 ] )
-#charge_station(  pose [ 7.920 -3.847 0 0 ] )
-#charge_station(  pose [ 7.449 -4.974 0 -40.107 ] )
-#charge_station(  pose [ 7.698 -1.432 0 31.513 ] )
-#charge_station(  pose [ 5.162 -0.814 0 88.809 ] )
 
-#charge_station(  pose [ 3.927 -0.693 0 88.808 ] )
-#charge_station(  pose [ 6.427 -0.964 0 74.484 ] )
-#charge_station(  pose [ 4.964 -0.752 0 88.808 ] )
-#charge_station(  pose [ 3.832 -0.704 0 91.673 ] )
-#charge_station(  pose [ 7.949 -4.019 0 0 ] )
+charge_station(  pose [ -43.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -37.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -39.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -41.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -38.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -40.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -42.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -47.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -46.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -44.500 -49.000 0 90.000 ] )
+charge_station(  pose [ -45.500 -49.000 0 90.000 ] )
 
+charge_station(  pose [ -37.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -38.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -39.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -41.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -40.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -42.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -43.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -44.000 -49.006 0 90.000 ] )
+charge_station(  pose [ -45.000 -49.000 0 90.000 ] )
+charge_station(  pose [ -46.000 -49.007 0 90.000 ] )
+charge_station(  pose [ -47.000 -49.000 0 90.000 ] )
+
+charge_station(  pose [ -49.000 -47.500 0 0 ] )
+charge_station(  pose [ -49.000 -46.500 0 0 ] )
+charge_station(  pose [ -49.000 -45.500 0 0 ] )
+charge_station(  pose [ -49.000 -44.500 0 0 ] )
+charge_station(  pose [ -49.000 -43.500 0 0 ] )
+charge_station(  pose [ -49.000 -42.500 0 0 ] )
+charge_station(  pose [ -49.000 -41.500 0 0 ] )
+charge_station(  pose [ -49.000 -40.500 0 0 ] )
+charge_station(  pose [ -49.000 -39.500 0 0 ] )
+charge_station(  pose [ -49.000 -38.500 0 0 ] )
+charge_station(  pose [ -49.000 -37.500 0 0 ] )
+charge_station(  pose [ -49.000 -36.500 0 0 ] )
+
+#charge_station(  pose [ -49.000 -36.00 0 0 ] )
+#charge_station(  pose [ -49.000 -36.50 0 0 ] )
+charge_station(  pose [ -49.000 -37.000 0 0 ] )
+charge_station(  pose [ -49.000 -37.500 0 0 ] )
+charge_station(  pose [ -49.000 -38.000 0 0 ] )
+charge_station(  pose [ -49.000 -38.500 0 0 ] )
+charge_station(  pose [ -49.000 -39.000 0 0 ] )
+charge_station(  pose [ -49.000 -39.500 0 0 ] )
+charge_station(  pose [ -49.000 -40.000 0 0 ] )
+charge_station(  pose [ -49.000 -40.500 0 0 ] )
+charge_station(  pose [ -49.000 -41.000 0 0 ] )
+charge_station(  pose [ -49.000 -41.500 0 0 ] )
+charge_station(  pose [ -49.000 -42.000 0 0 ] )
+charge_station(  pose [ -49.000 -42.500 0 0 ] )
+charge_station(  pose [ -49.000 -43.000 0 0 ] )
+charge_station(  pose [ -49.000 -43.500 0 0 ] )
+charge_station(  pose [ -49.000 -44.000 0 0 ] )
+charge_station(  pose [ -49.000 -44.500 0 0 ] )
+charge_station(  pose [ -49.000 -45.000 0 0 ] )
+charge_station(  pose [ -49.000 -45.500 0 0 ] )
+charge_station(  pose [ -49.000 -46.000 0 0 ] )
+charge_station(  pose [ -49.000 -46.500 0 0 ] )
+charge_station(  pose [ -49.000 -47.000 0 0 ] )
+charge_station(  pose [ -49.000 -47.500 0 0 ] )
+
+
+zone( color "orange" 
+               pose [ -43.000 -43.000 0 0 ]
+               name "fuel_zone"
+               size [ 14.000 14.000 0.010 ] 
+      gui_move 0
+)
+
+define buffer model
+(
+  color "orange" 
+  size [ 0.900 13.000 1.000 ] 
+)
+
+buffer( pose [ -49.500 -42.500 0 0 ] )
+buffer( pose [ -42.595 -49.527 0 90.000 ] )
+
+define blinker model
+(
+  color "orange"
+  size [ 0.100 0.700 0.600 ]
+)
+
+#blinker( pose [ -36.066 -48.834 0 0 ] )
+#blinker( pose [ -36.990 -48.838 0 0 ] )
+#blinker( pose [ -38.063 -48.836 0 0 ] )
+#blinker( pose [ -39.020 -48.831 0 0 ] )
+#blinker( pose [ -40.012 -48.823 0 0 ] )
+#blinker( pose [ -41.035 -48.812 0 0 ] )
+#blinker( pose [ -42.047 -48.775 0 0 ] )
+#blinker( pose [ -43.026 -48.834 0 0 ] )
+
 define autorob pioneer2dx                
 (               
- sicklaser( samples 32 range_max 4 laser_return 2 watts 30 )
+ sicklaser( samples 32 range_max 4 laser_return 2 watts 30  )
 # ctrl "fasr2"
  joules 100000 
  joules_capacity 400000 
  fiducial_return 0
- charging_bump( fiducial( range_max 5 pose [ 0 0 -0.100 0 ] ) )
+ charging_bump( obstacle_return 0 fiducial( range_max_id 9 range_max 9 fov 180 
pose [ 0 0 -0.050 0 ] ) )
 
  # small speed optimization
  # trail_length 0
@@ -185,202 +274,201 @@
 #define bot autorob( ctrl "fasr2 " )"            
 #define bot autorob( ctrl "fasr2 " )"            
 
-redbot( pose [-10.909 12.012 0 125.831] joules 100000 )
-redbot( pose [-11.699 11.274 0 125.831] joules 100000 )
-redbot( pose [-11.356 10.669 0 125.831] joules 100000 )
-redbot( pose [-10.066 11.432 0 125.831] joules 100000 )
-redbot( pose [-10.698 10.458 0 125.831] joules 100000 )
-redbot( pose [-9.987 10.669 0 125.831] joules 100000 )
-redbot( pose [-11.593 12.222 0 125.831] joules 100000 )
-redbot( pose [-10.303 12.222 0 125.831] joules 100000 )
-redbot( pose [-12.120 12.012 0 125.831] joules 100000 )
-redbot( pose [-12.601 11.375 0 125.831] joules 100000 )
+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.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.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.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 [-14.005 12.947 0 125.831] joules 100000 )
-redbot( pose [-12.922 13.866 0 125.831] joules 100000 )
-redbot( pose [-13.698 13.866 0 125.831] joules 100000 )
-redbot( pose [-14.536 12.558 0 125.831] joules 100000 )
-redbot( pose [-14.577 11.782 0 125.831] joules 100000 )
-redbot( pose [-13.984 11.210 0 125.831] joules 100000 )
-redbot( pose [-13.392 10.618 0 125.831] joules 100000 )
-redbot( pose [-14.883 13.355 0 125.831] joules 100000 )
-redbot( pose [-15.231 12.681 0 125.831] joules 100000 )
-redbot( pose [-10.920 11.394 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 )
+#redbot( pose [-13.698 13.866 0 125.831] joules 100000 )
+#redbot( pose [-14.536 12.558 0 125.831] joules 100000 )
+#redbot( pose [-14.577 11.782 0 125.831] joules 100000 )
+#redbot( pose [-13.984 11.210 0 125.831] joules 100000 )
+#redbot( pose [-13.392 10.618 0 125.831] joules 100000 )
+#redbot( pose [-14.883 13.355 0 125.831] joules 100000 )
+#redbot( pose [-15.231 12.681 0 125.831] joules 100000 )
+#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 [-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 [-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 [-10.242 8.631 0 160.986] joules 200000 )
 
-bluebot( pose [-11.191 6.965 0 174.453] joules 200000 )
-bluebot( pose [-11.270 8.097 0 174.453] joules 200000 )
-bluebot( pose [-10.295 6.886 0 174.453] joules 200000 )
-bluebot( pose [-8.900 8.361 0 174.453] joules 200000 )
-bluebot( pose [-10.374 8.940 0 174.453] joules 200000 )
-bluebot( pose [-9.321 7.650 0 174.453] joules 200000 )
-bluebot( pose [-9.453 9.072 0 174.453] joules 200000 )
-bluebot( pose [-11.401 8.966 0 174.453] joules 200000 )
-bluebot( pose [-9.558 6.570 0 174.453] joules 200000 )
-bluebot( pose [-9.795 8.473 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 [-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 [-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.706 8.428 0 174.453] joules 200000 )
+#bluebot( pose [-12.069 9.308 0 174.453] joules 200000 )
+#bluebot( pose [-12.719 7.662 0 174.453] joules 200000 )
+#bluebot( pose [-12.771 7.054 0 174.453] joules 200000 )
+#bluebot( pose [-12.834 8.847 0 174.453] joules 200000 )
+#bluebot( pose [-12.708 6.341 0 174.453] joules 200000 )
+#bluebot( pose [-12.163 5.901 0 174.453] joules 200000 )
+#bluebot( pose [-11.408 5.555 0 174.453] joules 200000 )
+#bluebot( pose [-10.727 5.576 0 174.453] joules 200000 )
+#bluebot( pose [-10.286 7.945 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 )
-bluebot( pose [-12.719 7.662 0 174.453] joules 200000 )
-bluebot( pose [-12.771 7.054 0 174.453] joules 200000 )
-bluebot( pose [-12.834 8.847 0 174.453] joules 200000 )
-bluebot( pose [-12.708 6.341 0 174.453] joules 200000 )
-bluebot( pose [-12.163 5.901 0 174.453] joules 200000 )
-bluebot( pose [-11.408 5.555 0 174.453] joules 200000 )
-bluebot( pose [-10.727 5.576 0 174.453] joules 200000 )
-bluebot( pose [-10.286 7.945 0 174.453] joules 200000 )
+cyanbot( pose [-1.975 18.008 0 67.057] joules 400000 )
+cyanbot( pose [-0.577 17.752 0 28.480] joules 400000 )
+cyanbot( pose [0.185 18.933 0 64.025] joules 400000 )
+cyanbot( pose [-4.470 20.502 0 5.703] joules 400000 )
+cyanbot( pose [-3.229 21.138 0 5.731] joules 400000 )
+cyanbot( pose [0.290 17.823 0 24.200] joules 400000 )
+cyanbot( pose [-1.945 19.158 0 54.480] joules 400000 )
+cyanbot( pose [-3.733 17.894 0 54.588] joules 400000 )
+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.491 17.578 0 -117.456] joules 400000 )
-cyanbot( pose [-2.642 17.210 0 -117.456] joules 400000 )
-cyanbot( pose [-1.415 18.181 0 -117.456] joules 400000 )
-cyanbot( pose [-6.058 20.955 0 -117.456] joules 400000 )
-cyanbot( pose [-5.274 21.749 0 -117.456] joules 400000 )
-cyanbot( pose [-1.642 17.193 0 -117.456] joules 400000 )
-cyanbot( pose [-3.095 18.236 0 -117.456] joules 400000 )
-cyanbot( pose [-4.038 18.173 0 -117.456] joules 400000 )
-cyanbot( pose [-4.538 17.452 0 -117.456] joules 400000 )
-cyanbot( pose [-4.651 20.435 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.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.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 [-4.708 18.475 0 -117.456] joules 400000 )
+#cyanbot( pose [-5.615 18.687 0 -117.456] joules 400000 )
+#cyanbot( pose [-6.341 17.840 0 -117.456] joules 400000 )
+#cyanbot( pose [-3.521 18.825 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.194 19.473 0 -117.456] joules 400000 )
+#cyanbot( pose [-5.192 19.564 0 -117.456] joules 400000 )
+#cyanbot( pose [-6.341 19.836 0 -117.456] joules 400000 )
+#cyanbot( pose [-2.742 19.050 0 -117.456] joules 400000 )
+#cyanbot( pose [-2.198 18.082 0 -117.456] joules 400000 )
+#cyanbot( pose [-6.301 18.782 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 )
-cyanbot( pose [-6.341 17.840 0 -117.456] joules 400000 )
-cyanbot( pose [-3.521 18.825 0 -117.456] joules 400000 )
-cyanbot( pose [-4.194 19.473 0 -117.456] joules 400000 )
-cyanbot( pose [-5.192 19.564 0 -117.456] joules 400000 )
-cyanbot( pose [-6.341 19.836 0 -117.456] joules 400000 )
-cyanbot( pose [-2.742 19.050 0 -117.456] joules 400000 )
-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.744 -47.036 0 117.485] joules 100000 )
+greenbot( pose [-37.050 -48.323 0 -85.614] 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 )
+greenbot( pose [-9.230 1.231 0 -99.719] joules 200000 )
+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 [-10.874 0.353 0 44.991] joules 100000 )
-greenbot( pose [-10.489 1.610 0 44.991] joules 100000 )
-greenbot( pose [-9.907 3.766 0 44.991] joules 100000 )
-greenbot( pose [-10.640 2.698 0 44.991] joules 100000 )
-greenbot( pose [-9.196 2.015 0 44.991] joules 100000 )
-greenbot( pose [-9.821 1.505 0 44.991] joules 100000 )
-greenbot( pose [-10.261 0.974 0 44.991] joules 100000 )
-greenbot( pose [-9.038 2.865 0 44.991] joules 100000 )
-greenbot( pose [-11.097 0.973 0 44.991] joules 100000 )
-greenbot( pose [-11.155 2.003 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 [-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 [-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 [-9.516 3.311 0 44.991] joules 100000 )
+#greenbot( pose [-12.308 3.949 0 44.991] joules 100000 )
+#greenbot( pose [-13.185 3.682 0 44.991] joules 100000 )
+#greenbot( pose [-13.014 2.167 0 44.991] joules 100000 )
+#greenbot( pose [-13.719 2.634 0 44.991] joules 100000 )
+#greenbot( pose [-13.633 1.986 0 44.991] joules 100000 )
+#greenbot( pose [-13.138 1.385 0 44.991] joules 100000 )
+#greenbot( pose [-12.490 0.575 0 44.991] joules 100000 )
+#greenbot( pose [-11.775 0.699 0 44.991] joules 100000 )
+#greenbot( pose [-11.641 2.586 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 )
-greenbot( pose [-13.185 3.682 0 44.991] joules 100000 )
-greenbot( pose [-13.014 2.167 0 44.991] joules 100000 )
-greenbot( pose [-13.719 2.634 0 44.991] joules 100000 )
-greenbot( pose [-13.633 1.986 0 44.991] joules 100000 )
-greenbot( pose [-13.138 1.385 0 44.991] joules 100000 )
-greenbot( pose [-12.490 0.575 0 44.991] joules 100000 )
-greenbot( pose [-11.775 0.699 0 44.991] joules 100000 )
-greenbot( pose [-11.641 2.586 0 44.991] joules 100000 )
+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 [-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 )
+yellowbot( pose [-15.665 7.690 0 35.677] joules 200000 )
+yellowbot( pose [-15.183 6.829 0 -100.002] joules 200000 )
+yellowbot( pose [-13.444 3.480 0 -97.678] joules 200000 )
+yellowbot( pose [-16.445 7.660 0 68.821] joules 200000 )
 
-yellowbot( pose [-15.452 7.366 0 35.145] joules 200000 )
-yellowbot( pose [-13.978 6.340 0 35.145] joules 200000 )
-yellowbot( pose [-16.173 6.901 0 35.145] joules 200000 )
-yellowbot( pose [-15.979 5.550 0 35.145] joules 200000 )
-yellowbot( pose [-14.873 5.208 0 35.145] joules 200000 )
-yellowbot( pose [-14.504 7.419 0 35.145] joules 200000 )
-yellowbot( pose [-16.374 8.025 0 35.145] joules 200000 )
-yellowbot( pose [-15.189 8.420 0 35.145] joules 200000 )
-yellowbot( pose [-13.793 5.576 0 35.145] joules 200000 )
-yellowbot( pose [-16.914 7.279 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 [-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 )
+#yellowbot( pose [-15.759 7.850 0 35.145] joules 200000 )
+#yellowbot( pose [-15.801 8.625 0 35.145] joules 200000 )
+#yellowbot( pose [-16.598 8.835 0 35.145] joules 200000 )
+#yellowbot( pose [-14.417 6.791 0 35.145] joules 200000 )
+#yellowbot( pose [-15.235 6.801 0 35.145] joules 200000 )
+#yellowbot( pose [-15.444 5.260 0 35.145] joules 200000 )
+#yellowbot( pose [-16.598 5.187 0 35.145] joules 200000 )
+#yellowbot( pose [-16.461 4.159 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 )
-yellowbot( pose [-15.759 7.850 0 35.145] joules 200000 )
-yellowbot( pose [-15.801 8.625 0 35.145] joules 200000 )
-yellowbot( pose [-16.598 8.835 0 35.145] joules 200000 )
-yellowbot( pose [-14.417 6.791 0 35.145] joules 200000 )
-yellowbot( pose [-15.235 6.801 0 35.145] joules 200000 )
-yellowbot( pose [-15.444 5.260 0 35.145] joules 200000 )
-yellowbot( pose [-16.598 5.187 0 35.145] joules 200000 )
-yellowbot( pose [-16.461 4.159 0 35.145] joules 200000 )
+magentabot( pose [-8.171 13.723 0 -139.469] joules 300000 )
+magentabot( pose [-8.887 12.177 0 -88.070] joules 300000 )
+magentabot( pose [-8.568 11.307 0 -94.395] joules 300000 )
+magentabot( pose [-7.698 14.624 0 -167.188] joules 300000 )
+magentabot( pose [-7.482 13.834 0 -94.067] joules 300000 )
+magentabot( pose [-8.009 13.153 0 -163.083] joules 300000 )
+magentabot( pose [-7.300 12.823 0 -137.774] joules 300000 )
+magentabot( pose [-8.410 14.496 0 -136.374] joules 300000 )
+magentabot( pose [-6.752 14.083 0 -101.104] joules 300000 )
+magentabot( pose [-8.752 15.271 0 -131.336] joules 300000 )
 
-magentabot( pose [-7.850 14.772 0 -143.181] joules 300000 )
-magentabot( pose [-8.323 14.087 0 -143.181] joules 300000 )
-magentabot( pose [-7.850 13.613 0 -143.181] joules 300000 )
-magentabot( pose [-7.139 14.772 0 -143.181] joules 300000 )
-magentabot( pose [-6.401 14.061 0 -143.181] joules 300000 )
-magentabot( pose [-7.165 13.429 0 -143.181] joules 300000 )
-magentabot( pose [-6.428 13.323 0 -143.181] joules 300000 )
-magentabot( pose [-7.455 15.430 0 -143.181] joules 300000 )
-magentabot( pose [-6.507 14.851 0 -143.181] joules 300000 )
-magentabot( pose [-8.343 17.162 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.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 )
+#magentabot( pose [-9.304 14.280 0 -143.181] joules 300000 )
+#magentabot( pose [-8.946 13.737 0 -143.181] joules 300000 )
+#magentabot( pose [-8.761 13.140 0 -143.181] joules 300000 )
+#magentabot( pose [-8.153 12.629 0 -143.181] joules 300000 )
+#magentabot( pose [-7.393 12.618 0 -143.181] joules 300000 )
+#magentabot( pose [-8.467 15.712 0 -143.181] joules 300000 )
+#magentabot( pose [-7.762 16.132 0 -143.181] joules 300000 )
+#magentabot( pose [-8.794 14.855 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 )
-magentabot( pose [-9.304 14.280 0 -143.181] joules 300000 )
-magentabot( pose [-8.946 13.737 0 -143.181] joules 300000 )
-magentabot( pose [-8.761 13.140 0 -143.181] joules 300000 )
-magentabot( pose [-8.153 12.629 0 -143.181] joules 300000 )
-magentabot( pose [-7.393 12.618 0 -143.181] joules 300000 )
-magentabot( pose [-8.467 15.712 0 -143.181] joules 300000 )
-magentabot( pose [-7.762 16.132 0 -143.181] joules 300000 )
-magentabot( pose [-8.794 14.855 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to