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® 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