Revision: 8579
          http://playerstage.svn.sourceforge.net/playerstage/?rev=8579&view=rev
Author:   rtv
Date:     2010-03-10 02:11:47 +0000 (Wed, 10 Mar 2010)

Log Message:
-----------
fasr2

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

Modified: code/stage/trunk/examples/ctrl/fasr2.cc
===================================================================
--- code/stage/trunk/examples/ctrl/fasr2.cc     2010-03-10 01:50:27 UTC (rev 
8578)
+++ code/stage/trunk/examples/ctrl/fasr2.cc     2010-03-10 02:11:47 UTC (rev 
8579)
@@ -194,6 +194,8 @@
 }
 
 
+#include <pthread.h>
+
 class Robot
 {
 private:
@@ -211,6 +213,8 @@
   double charger_heading;
   nav_mode_t mode;
 
+  static pthread_mutex_t planner_mutex;
+
   Model* goal;
 
   Graph graph;
@@ -341,6 +345,9 @@
         //printf( "searching from (%.2f, %.2f) [%d, %d]\n", pose.x, pose.y, 
start.x, start.y );
         //printf( "searching to   (%.2f, %.2f) [%d, %d]\n", sp.x, sp.y, 
goal.x, goal.y );
 
+        // astar() is not reentrant, so we protect it thus
+        pthread_mutex_lock( &planner_mutex );
+
         std::vector<point_t> path;
         bool result = astar( map_data, 
                                                                 map_width, 
@@ -348,7 +355,9 @@
                                                                 start,
                                                                 goal,
                                                                 path );
-        
+
+        pthread_mutex_unlock( &planner_mutex );
+
         //printf( "#%s:\n", result ? "PATH" : "NOPATH" );
 
         graph.nodes.clear();
@@ -385,8 +394,10 @@
                        double orient = normalize( M_PI - (charger_bearing - 
charger_heading) );
                        //printf( "val %.2f\n", orient );
 
-                       a_goal -= 2.0 * orient;
+                       //if( fabs(orient) < M_PI/4.0 )
+                       a_goal = normalize( a_goal - 2.0 * orient );
 
+
                  //            if( pos->Stalled() )
                  //              {
                  //                     puts( "stalled. stopping" );
@@ -396,7 +407,7 @@
 
                  // a_goal *= 2.0;
 
-                 if( charger_range > 0.45 )
+                 if( charger_range > 0.6 )
                                {
                                        if( !ObstacleAvoid() )
                                                {
@@ -428,9 +439,9 @@
         if( Full() )
                {
                  //printf( "fully charged, now back to work\n" );
-
+                 
                  ranger->Subscribe(); // enable the sonar to see behind us
-                       fiducial->Unsubscribe(); 
+                 fiducial->Unsubscribe(); 
                  mode = MODE_UNDOCK;
                }
   }
@@ -582,12 +593,12 @@
                  
                  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 );
+                               //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 );
                         }
                  
@@ -668,10 +679,7 @@
 
   bool Hungry()
   {
-        // XX
-        //return false;
-
-        return( pos->FindPowerPack()->ProportionRemaining() < 0.5 );
+        return( pos->FindPowerPack()->ProportionRemaining() < 0.2 );
   }     
 
   bool Full()
@@ -796,6 +804,8 @@
 };
 
 
+// STATIC VARS
+pthread_mutex_t Robot::planner_mutex = PTHREAD_MUTEX_INITIALIZER;
 unsigned int Robot::map_width( 60 );
 unsigned int Robot::map_height( 60 );
 uint8_t* Robot::map_data( NULL );

Modified: code/stage/trunk/libstage/model_load.cc
===================================================================
--- code/stage/trunk/libstage/model_load.cc     2010-03-10 01:50:27 UTC (rev 
8578)
+++ code/stage/trunk/libstage/model_load.cc     2010-03-10 02:11:47 UTC (rev 
8579)
@@ -37,7 +37,7 @@
                power_pack->SetStored( j );
                power_pack->SetCapacity( j );
         }
-  
+
   if( wf->PropertyExists( wf_entity, "joules_capacity" ) )
         {
                if( !power_pack )
@@ -46,6 +46,30 @@
                power_pack->SetCapacity( wf->ReadFloat( wf_entity, 
"joules_capacity",
                                                                                
                                         power_pack->GetCapacity() ) );         
        
         }
+
+  if( wf->PropertyExists( wf_entity, "kjoules" ) )
+        {
+               if( !power_pack )
+                 power_pack = new PowerPack( this );
+               
+               stg_joules_t j = 1000.0 * wf->ReadFloat( wf_entity, "kjoules", 
+                                                                               
                                          power_pack->GetStored() ) ;    
+               
+               /* assume that the store is full, so the capacity is the same as
+                       the charge */
+               power_pack->SetStored( j );
+               power_pack->SetCapacity( j );
+        }
+  
+  if( wf->PropertyExists( wf_entity, "kjoules_capacity" ) )
+        {
+               if( !power_pack )
+                 power_pack = new PowerPack( this );
+               
+               power_pack->SetCapacity( 1000.0 * wf->ReadFloat( wf_entity, 
"kjoules_capacity",
+                                                                               
                                                                 
power_pack->GetCapacity() ) );                 
+        }
+
     
   watts = wf->ReadFloat( wf_entity, "watts", watts );    
   watts_give = wf->ReadFloat( wf_entity, "give_watts", watts_give );    

Modified: code/stage/trunk/libstage/model_ranger.cc
===================================================================
--- code/stage/trunk/libstage/model_ranger.cc   2010-03-10 01:50:27 UTC (rev 
8578)
+++ code/stage/trunk/libstage/model_ranger.cc   2010-03-10 02:11:47 UTC (rev 
8579)
@@ -257,26 +257,23 @@
 void ModelRanger::Update( void )
 {     
   // raytrace new range data for all sensors
-  printf( "Stage: " );
-       FOR_EACH( it, sensors )
+  FOR_EACH( it, sensors )
     {
-                       Sensor& s = *it;
-                       
+               Sensor& s = *it;
+               
       // TODO - reinstate multi-ray rangers
       //for( int r=0; r<sensors[t].ray_count; r++ )
       //{        
-                       stg_raytrace_result_t ray = Raytrace( s.pose,
-                                                                               
                                          s.bounds_range.max,
-                                                                               
                                          ranger_match,
-                                                                               
                                          NULL );
-                       
+               
+               stg_raytrace_result_t ray = Raytrace( s.pose,
+                                                                               
                                  s.bounds_range.max,
+                                                                               
                                  ranger_match,
+                                                                               
                                  NULL );
+               
       s.range = std::max( ray.range, s.bounds_range.min );
-
-               //printf( " %.3f (%.3f) ", s.range, s.pose.a );
     }   
-       puts("");
-       
-       Model::Update();
+  
+  Model::Update();
 }
 
 void ModelRanger::Print( char* prefix )

Modified: code/stage/trunk/libstage/world.cc
===================================================================
--- code/stage/trunk/libstage/world.cc  2010-03-10 01:50:27 UTC (rev 8578)
+++ code/stage/trunk/libstage/world.cc  2010-03-10 02:11:47 UTC (rev 8579)
@@ -200,10 +200,14 @@
   World* world = thread_info->first;
   int thread_instance = thread_info->second;
 
+  //printf( "thread ID %d waiting for mutex\n", thread_instance );
+
   pthread_mutex_lock( &world->thread_mutex );
   
   while( 1 )
     {
+               //printf( "thread ID %d waiting for start\n", thread_instance );
+
       // wait until the main thread signals us
       //puts( "worker waiting for start signal" );
 
@@ -215,6 +219,8 @@
       // consume events on the queue up to the current sim time
       world->ConsumeQueue( thread_instance );
                  
+               //printf( "thread %d done\n", thread_instance );
+
       // done working, so increment the counter. If this was the last
       // thread to finish working, signal the main thread, which is
       // blocked waiting for this to happen
@@ -362,12 +368,20 @@
       PRINT_WARN( "\nmulti-thread support is experimental and may not work 
properly, if at all." );
       
       event_queues.resize( worker_threads + 1 );
-      
+
+               //printf( "worker threads %d\n", worker_threads );
+               
+               // need data for each thread
+               // XX BUG! this shouldn't be a local var!
+               
       // kick off the threads
       for( unsigned int t=0; t<worker_threads; t++ )
                  {
-                        std::pair<World*,int> info( this, t+1 );
-
+                        // a little configuration for each thread
+                        std::pair<World*,int>* infop = new 
std::pair<World*,int>( this, t+1 );
+                        
+                        //printf( "starting thread %d with ID %d \n", (int)t, 
info[t].second );
+                        
                         //normal posix pthread C function pointer
                         typedef void* (*func_ptr) (void*);
          
@@ -375,7 +389,7 @@
                         pthread_create( &pt,
                                                                  NULL,
                                                                  
(func_ptr)World::update_thread_entry, 
-                                                                 &info );
+                                                                 infop );
                  }
       
       printf( "[threads %u]", worker_threads );        

Modified: code/stage/trunk/worlds/fasr.world
===================================================================
--- code/stage/trunk/worlds/fasr.world  2010-03-10 01:50:27 UTC (rev 8578)
+++ code/stage/trunk/worlds/fasr.world  2010-03-10 02:11:47 UTC (rev 8579)
@@ -16,7 +16,7 @@
 
 resolution 0.02
 
-threads 0
+threads 2
 
 # configure the GUI window
 window

Modified: code/stage/trunk/worlds/fasr2.world
===================================================================
--- code/stage/trunk/worlds/fasr2.world 2010-03-10 01:50:27 UTC (rev 8578)
+++ code/stage/trunk/worlds/fasr2.world 2010-03-10 02:11:47 UTC (rev 8579)
@@ -7,7 +7,7 @@
 include "map.inc"
 include "sick.inc"
 
-speedup 10.000
+speedup -1.000 # 10.000
 paused 1
 
 # time at which to pause (in GUI mode) or quit (in headless mode) the 
simulation
@@ -16,16 +16,16 @@
 
 resolution 0.02
 
-threads 0
+threads 8
 
 # configure the GUI window
 window
 ( 
-  size [ 758.000 809.000 ] 
+  size [ 1226.000 1080.000 ] 
 
-  center [ -9.226 10.939 ] 
+  center [ -41.006 -43.393 ] 
   rotate [ 0 0 ]
-  scale 27.308 
+  scale 53.216 
   
   show_data 1
   show_flags 1
@@ -121,48 +121,27 @@
 (
   pose [0.240 0 -0.100 0 ] 
   size [0.120 0.050 0.100] 
-  take_watts 2000.0 
+  take_watts 24000.0 
   color "orange" 
   obstacle_return 0
 )
 
 define charge_station model
 (  
-  size [ 0.100 0.300 0.300 ]
+  size [ 0.100 0.100 0.300 ]
   color "purple"
   
   laser_return 0
   obstacle_return 0
+  fiducial_return 2 # look for this in the fiducial sensor
 
   # 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 ] ) 
-
-  # 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 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
-   #)
-
- # 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
-  #)
-
+   kjoules -1  # provides infinite energy
+   give_watts 80000 # high! 
+   alwayson 1 # so we give charge without any explicit subscriber
 )
 
 
@@ -232,7 +211,7 @@
 zone( color "orange" 
                pose [ -43.000 -43.000 0 0 ]
                name "fuel_zone"
-               size [ 14.000 14.000 0.010 ] 
+               size [ 1.000 1.000 0.010 ] 
       gui_move 0
 )
 
@@ -262,12 +241,12 @@
 
 define autorob pioneer2dx                
 (               
- sicklaser( samples 32 range_max 4 laser_return 2 watts 30  )
+ sicklaser( samples 32 range_max 2 laser_return 2 watts 30  )
 # ctrl "fasr2"
- joules 100000 
- joules_capacity 400000 
+ kjoules 100 
+ kjoules_capacity 400 
  fiducial_return 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 ] ) )
+ 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
@@ -280,205 +259,202 @@
 define yellowbot autorob( color "yellow" ctrl "fasr2 yellow" )
 define magentabot autorob( color "magenta" ctrl "fasr2 magenta" )              
  
 
-#define bot autorob( ctrl "fasr2 " )"            
-#define bot autorob( ctrl "fasr2 " )"            
-#define bot autorob( ctrl "fasr2 " )"            
 
-redbot( pose [-11.388 12.267 0 166.581] 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 [-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 [-11.388 12.267 0 166.581] kjoules 200 )
+redbot( pose [-12.208 11.744 0 135.003] kjoules 200 )
+redbot( pose [-12.289 10.814 0 147.497] kjoules 200 )
+redbot( pose [-10.642 11.563 0 123.708] kjoules 200 )
+redbot( pose [-11.378 11.274 0 143.281] kjoules 200 )
+redbot( pose [-10.200 11.012 0 46.529] kjoules 200 )
+redbot( pose [-13.006 13.061 0 168.778] kjoules 200 )
+redbot( pose [-12.466 13.333 0 163.730] kjoules 200 )
+redbot( pose [-13.740 12.740 0 157.546] kjoules 200 )
+redbot( pose [-15.434 11.856 0 138.616] kjoules 200 )
 
-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 [-12.841 10.666 0 125.831] kjoules 400 )
+redbot( pose [-12.710 12.157 0 125.831] kjoules 400 )
+redbot( pose [-12.214 12.593 0 125.831] kjoules 400 )
+redbot( pose [-11.461 13.123 0 125.831] kjoules 400 )
+redbot( pose [-10.679 13.036 0 125.831] kjoules 400 )
+redbot( pose [-12.277 14.027 0 125.831] kjoules 400 )
+redbot( pose [-13.981 13.377 0 125.831] kjoules 400 )
+redbot( pose [-13.372 12.243 0 125.831] kjoules 400 )
+redbot( pose [-13.296 11.331 0 125.831] kjoules 400 )
+redbot( pose [-13.944 11.986 0 125.831] kjoules 400 )
 
-#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.580 14.279 0 125.831] kjoules 400 )
+#redbot( pose [-12.922 13.866 0 125.831] kjoules 400 )
+#redbot( pose [-13.698 13.866 0 125.831] kjoules 400 )
+#redbot( pose [-14.536 12.558 0 125.831] kjoules 400 )
+#redbot( pose [-14.577 11.782 0 125.831] kjoules 400 )
+#redbot( pose [-13.984 11.210 0 125.831] kjoules 400 )
+#redbot( pose [-13.392 10.618 0 125.831] kjoules 400 )
+#redbot( pose [-14.883 13.355 0 125.831] kjoules 400 )
+#redbot( pose [-15.231 12.681 0 125.831] kjoules 400 )
+#redbot( pose [-11.102 10.456 0 125.831] kjoules 400 )
 
-bluebot( pose [-13.004 6.811 0 166.511] 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.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.753 5.510 0 -139.502] joules 200000 )
-bluebot( pose [-10.242 8.631 0 160.986] joules 200000 )
+bluebot( pose [-13.004 6.811 0 166.511] kjoules 200 )
+bluebot( pose [-13.272 8.255 0 175.835] kjoules 200 )
+bluebot( pose [-12.180 6.527 0 -132.938] kjoules 200 )
+bluebot( pose [-9.625 8.080 0 171.172] kjoules 200 )
+bluebot( pose [-12.844 9.141 0 170.270] kjoules 200 )
+bluebot( pose [-11.369 8.011 0 -157.026] kjoules 200 )
+bluebot( pose [-11.453 8.651 0 -120.696] kjoules 200 )
+bluebot( pose [-13.876 8.850 0 -177.508] kjoules 200 )
+bluebot( pose [-11.753 5.510 0 -139.502] kjoules 200 )
+bluebot( pose [-10.121 8.843 0 160.986] kjoules 200 )
 
-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.901 7.503 0 174.453] kjoules 200 )
+bluebot( pose [-12.063 7.960 0 174.453] kjoules 200 )
+bluebot( pose [-12.159 8.673 0 174.453] kjoules 200 )
+bluebot( pose [-12.039 7.399 0 174.453] kjoules 200 )
+bluebot( pose [-11.455 6.855 0 174.453] kjoules 200 )
+bluebot( pose [-11.574 6.213 0 174.453] kjoules 200 )
+bluebot( pose [-10.725 6.173 0 174.453] kjoules 200 )
+bluebot( pose [-10.019 5.829 0 174.453] kjoules 200 )
+bluebot( pose [-9.828 6.667 0 174.453] kjoules 200 )
+bluebot( pose [-9.930 7.369 0 174.453] kjoules 200 )
 
-#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] kjoules 200 )
+#bluebot( pose [-12.069 9.308 0 174.453] kjoules 200 )
+#bluebot( pose [-12.719 7.662 0 174.453] kjoules 200 )
+#bluebot( pose [-13.739 7.599 0 174.453] kjoules 200 )
+#bluebot( pose [-10.988 9.361 0 174.453] kjoules 200 )
+#bluebot( pose [-12.708 6.341 0 174.453] kjoules 200 )
+#bluebot( pose [-12.163 5.901 0 174.453] kjoules 200 )
+#bluebot( pose [-10.500 6.917 0 174.453] kjoules 200 )
+#bluebot( pose [-10.727 5.576 0 174.453] kjoules 200 )
+#bluebot( pose [-10.286 7.945 0 174.453] kjoules 200 )
 
-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 [-1.975 18.008 0 67.057] kjoules 400 )
+cyanbot( pose [-0.577 17.752 0 28.480] kjoules 400 )
+cyanbot( pose [0.185 18.933 0 64.025] kjoules 400 )
+cyanbot( pose [-4.470 20.502 0 5.703] kjoules 400 )
+cyanbot( pose [-3.229 21.138 0 5.731] kjoules 400 )
+cyanbot( pose [0.290 17.823 0 24.200] kjoules 400 )
+cyanbot( pose [-1.945 19.158 0 54.480] kjoules 400 )
+cyanbot( pose [-3.733 17.894 0 54.588] kjoules 400 )
+cyanbot( pose [-3.232 17.616 0 52.768] kjoules 400 )
+cyanbot( pose [-2.570 20.624 0 20.367] kjoules 400 )
 
-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 [-3.635 20.622 0 -117.456] kjoules 400 )
+cyanbot( pose [-5.346 20.649 0 -117.456] kjoules 400 )
+cyanbot( pose [-4.518 21.397 0 -117.456] kjoules 400 )
+cyanbot( pose [-3.796 21.611 0 -117.456] kjoules 400 )
+cyanbot( pose [-3.074 19.927 0 -117.456] kjoules 400 )
+cyanbot( pose [-2.610 21.900 0 -117.456] kjoules 400 )
+cyanbot( pose [-1.703 20.756 0 -117.456] kjoules 400 )
+cyanbot( pose [-1.898 19.927 0 -117.456] kjoules 400 )
+cyanbot( pose [-1.371 19.088 0 -117.456] kjoules 400 )
+cyanbot( pose [-5.320 17.681 0 -117.456] kjoules 400 )
 
-#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] kjoules 400 )
+#cyanbot( pose [-5.615 18.687 0 -117.456] kjoules 400 )
+#cyanbot( pose [-6.341 17.840 0 -117.456] kjoules 400 )
+#cyanbot( pose [-3.521 18.825 0 -117.456] kjoules 400 )
+#cyanbot( pose [-4.194 19.473 0 -117.456] kjoules 400 )
+#cyanbot( pose [-5.192 19.564 0 -117.456] kjoules 400 )
+#cyanbot( pose [-6.341 19.836 0 -117.456] kjoules 400 )
+#cyanbot( pose [-2.742 19.050 0 -117.456] kjoules 400 )
+#cyanbot( pose [-2.591 18.324 0 -108.862] kjoules 400 )
+#cyanbot( pose [-6.301 18.782 0 -117.456] kjoules 400 )
 
-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 )
-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 [-11.214 1.949 0 46.259] joules 200000 )
+greenbot( pose [-35.549 -47.514 0 -41.980] kjoules 40 )
+greenbot( pose [-48.064 -48.105 0 -119.991] kjoules 40 )
+greenbot( pose [-38.902 -42.142 0 -65.139] kjoules 40 )
+greenbot( pose [-39.615 -42.398 0 -73.426] kjoules 40 )
+greenbot( pose [-39.830 -40.428 0 -93.488] kjoules 40 )
+greenbot( pose [-39.230 -41.231 0 -99.719] kjoules 40 )
+greenbot( pose [-30.258 -41.202 0 27.802] kjoules 40 )
+greenbot( pose [-38.513 -40.851 0 -96.070] kjoules 40 )
+greenbot( pose [-30.890 -41.197 0 160.446] kjoules 40 )
+greenbot( pose [-31.214 -41.949 0 46.259] kjoules 40 )
 
-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 [-11.819 1.550 0 44.991] kjoules 400 )
+greenbot( pose [-12.401 2.181 0 44.991] kjoules 400 )
+greenbot( pose [-11.236 3.330 0 44.991] kjoules 400 )
+greenbot( pose [-12.078 3.298 0 44.991] kjoules 400 )
+greenbot( pose [-10.275 2.456 0 44.991] kjoules 400 )
+greenbot( pose [-10.734 4.123 0 44.991] kjoules 400 )
+greenbot( pose [-11.592 4.398 0 44.991] kjoules 400 )
+greenbot( pose [-12.903 2.877 0 44.991] kjoules 400 )
+greenbot( pose [-12.434 1.372 0 44.991] kjoules 400 )
+greenbot( pose [-10.555 3.358 0 44.991] kjoules 400 )
 
-#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] kjoules 400 )
+#greenbot( pose [-12.308 3.949 0 44.991] kjoules 400 )
+#greenbot( pose [-13.185 3.682 0 44.991] kjoules 400 )
+#greenbot( pose [-13.014 2.167 0 44.991] kjoules 400 )
+#greenbot( pose [-13.719 2.634 0 44.991] kjoules 400 )
+#greenbot( pose [-13.633 1.986 0 44.991] kjoules 400 )
+#greenbot( pose [-13.138 1.385 0 44.991] kjoules 400 )
+#greenbot( pose [-12.490 0.575 0 44.991] kjoules 400 )
+#greenbot( pose [-11.775 0.699 0 44.991] kjoules 400 )
+#greenbot( pose [-11.641 2.586 0 44.991] kjoules 400 )
 
-yellowbot( pose [-15.567 5.300 0 -113.433] joules 200000 )
-yellowbot( pose [-13.218 5.200 0 -105.066] 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 )
-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 [-14.296 4.967 0 -113.433] kjoules 200 )
+yellowbot( pose [-13.218 5.200 0 -105.066] kjoules 200 )
+yellowbot( pose [-17.084 7.178 0 -113.959] kjoules 200 )
+yellowbot( pose [-15.829 3.428 0 -100.843] kjoules 200 )
+yellowbot( pose [-16.001 6.965 0 -116.077] kjoules 200 )
+yellowbot( pose [-13.589 6.170 0 -108.098] kjoules 200 )
+yellowbot( pose [-15.665 7.690 0 35.677] kjoules 200 )
+yellowbot( pose [-18.633 7.374 0 -100.002] kjoules 200 )
+yellowbot( pose [-14.987 3.480 0 -97.678] kjoules 200 )
+yellowbot( pose [-16.445 7.660 0 68.821] kjoules 200 )
 
-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] kjoules 200 )
+yellowbot( pose [-17.885 7.198 0 35.145] kjoules 200 )
+yellowbot( pose [-17.254 8.218 0 35.145] kjoules 200 )
+yellowbot( pose [-17.060 5.498 0 35.145] kjoules 200 )
+yellowbot( pose [-18.047 6.227 0 35.145] kjoules 200 )
+yellowbot( pose [-16.930 4.640 0 35.145] kjoules 200 )
+yellowbot( pose [-17.966 5.417 0 35.145] kjoules 200 )
+yellowbot( pose [-15.927 4.640 0 35.145] kjoules 200 )
+yellowbot( pose [-14.988 4.236 0 35.145] kjoules 200 )
+yellowbot( pose [-15.706 6.151 0 35.145] kjoules 200 )
 
-#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] kjoules 200 )
+#yellowbot( pose [-14.574 5.868 0 35.145] kjoules 200 )
+#yellowbot( pose [-18.271 8.274 0 35.145] kjoules 200 )
+#yellowbot( pose [-15.801 8.625 0 35.145] kjoules 200 )
+#yellowbot( pose [-16.598 8.835 0 35.145] kjoules 200 )
+#yellowbot( pose [-14.417 6.791 0 35.145] kjoules 200 )
+#yellowbot( pose [-15.235 6.801 0 35.145] kjoules 200 )
+#yellowbot( pose [-15.444 5.260 0 35.145] kjoules 200 )
+#yellowbot( pose [-16.598 5.187 0 35.145] kjoules 200 )
+#yellowbot( pose [-16.461 4.159 0 35.145] kjoules 200 )
 
-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 [-8.171 13.723 0 -139.469] kjoules 300 )
+magentabot( pose [-8.887 12.177 0 -88.070] kjoules 300 )
+magentabot( pose [-7.357 15.181 0 -94.395] kjoules 300 )
+magentabot( pose [-7.970 15.169 0 -167.188] kjoules 300 )
+magentabot( pose [-7.482 13.834 0 -94.067] kjoules 300 )
+magentabot( pose [-8.009 13.153 0 -163.083] kjoules 300 )
+magentabot( pose [-6.846 13.156 0 -137.774] kjoules 300 )
+magentabot( pose [-8.349 14.435 0 -136.374] kjoules 300 )
+magentabot( pose [-6.752 14.083 0 -101.104] kjoules 300 )
+magentabot( pose [-6.452 15.332 0 -131.336] kjoules 300 )
 
-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] kjoules 300 )
+magentabot( pose [-9.610 15.854 0 -143.181] kjoules 300 )
+magentabot( pose [-9.589 16.569 0 -143.181] kjoules 300 )
+magentabot( pose [-10.059 15.221 0 -143.181] kjoules 300 )
+magentabot( pose [-10.264 16.099 0 -143.181] kjoules 300 )
+magentabot( pose [-9.814 17.325 0 -143.181] kjoules 300 )
+magentabot( pose [-8.271 16.840 0 -143.181] kjoules 300 )
+magentabot( pose [-8.629 17.999 0 -143.181] kjoules 300 )
+magentabot( pose [-9.467 18.142 0 -143.181] kjoules 300 )
+magentabot( pose [-9.079 16.263 0 -143.181] kjoules 300 )
 
-#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] kjoules 300 )
+#magentabot( pose [-9.598 14.812 0 -143.181] kjoules 300 )
+#magentabot( pose [-9.304 14.280 0 -143.181] kjoules 300 )
+#magentabot( pose [-8.946 13.737 0 -143.181] kjoules 300 )
+#magentabot( pose [-8.761 13.140 0 -143.181] kjoules 300 )
+#magentabot( pose [-8.153 12.629 0 -143.181] kjoules 300 )
+#magentabot( pose [-7.393 12.618 0 -143.181] kjoules 300 )
+#magentabot( pose [-8.467 15.712 0 -143.181] kjoules 300 )
+#magentabot( pose [-7.762 16.132 0 -143.181] kjoules 300 )
+#magentabot( pose [-8.794 14.855 0 -143.181] kjoules 300 )
 


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