Revision: 8558
http://playerstage.svn.sourceforge.net/playerstage/?rev=8558&view=rev
Author: rtv
Date: 2010-02-19 21:28:18 +0000 (Fri, 19 Feb 2010)
Log Message:
-----------
minimal fasr2 demo
Modified Paths:
--------------
code/stage/trunk/examples/ctrl/astar/stlastar.h
code/stage/trunk/examples/ctrl/fasr2.cc
code/stage/trunk/examples/ctrl/sink.cc
code/stage/trunk/worlds/fasr2.world
Added Paths:
-----------
code/stage/trunk/worlds/fasr2_duo.world
code/stage/trunk/worlds/fasr2_solo.world
Modified: code/stage/trunk/examples/ctrl/astar/stlastar.h
===================================================================
--- code/stage/trunk/examples/ctrl/astar/stlastar.h 2010-02-19 02:38:04 UTC
(rev 8557)
+++ code/stage/trunk/examples/ctrl/astar/stlastar.h 2010-02-19 21:28:18 UTC
(rev 8558)
@@ -41,11 +41,11 @@
// Fixed size memory allocator can be disabled to compare performance
// Uses std new and delete instead if you turn it off
-#define USE_FSA_MEMORY 1
+#define USE_FSA_MEMORY 0
// disable warning that debugging information has lines that are truncated
// occurs in stl headers
-#pragma warning( disable : 4786 )
+//#pragma warning( disable : 4786 )
// The AStar search class. UserState is the users state space type
template <class UserState> class AStarSearch
Modified: code/stage/trunk/examples/ctrl/fasr2.cc
===================================================================
--- code/stage/trunk/examples/ctrl/fasr2.cc 2010-02-19 02:38:04 UTC (rev
8557)
+++ code/stage/trunk/examples/ctrl/fasr2.cc 2010-02-19 21:28:18 UTC (rev
8558)
@@ -103,6 +103,42 @@
glPointSize(4);
FOR_EACH( it, nodes ){ (*it)->Draw(); }
}
+
+ stg_radians_t GoodDirection( const Pose& pose, stg_meters_t range )
+ {
+ // find the node with the lowest value within range of the given
+ // pose and return the absolute heading from pose that node
+
+ if( nodes.empty() )
+ return 0; // a null guess
+
+
+ Node* best_node = NULL;
+
+ // find the closest node
+ FOR_EACH( it, nodes )
+ {
+ Node* node = *it;
+ double dist = hypot( node->pose.x - pose.x, node->pose.y -
pose.y );
+
+ // if it's in range, and either its the first we have found,
+ // or it has a lower value than the current best
+ if( dist < range &&
+ ( best_node == NULL || node->value <
best_node->value ))
+ {
+ best_node = node;
+ }
+ }
+
+ if( best_node == NULL )
+ {
+ puts( "warning: no nodes in range" );
+ return 0;
+ }
+ //else
+ return atan2( best_node->pose.y - pose.y,
+ best_node->pose.x - pose.x );
+ }
};
@@ -143,7 +179,7 @@
{
// print value
//char buf[32];
- //snprintf( buf, 32, "%.2f", value );
+ //snprintf( buf, 32, "%.0f", value );
//Gl::draw_string( pose.x, pose.y+0.2, 0.1, buf );
glBegin( GL_POINTS );
@@ -192,7 +228,6 @@
double charger_range;
double charger_heading;
nav_mode_t mode;
- bool at_dest;
Graph graph;
GraphVis graphvis;
@@ -203,7 +238,8 @@
static unsigned int map_width;
static unsigned int map_height;
static uint8_t* map_data;
-
+ static Model* map_model;
+
public:
Robot( ModelPosition* pos,
Model* source,
@@ -223,7 +259,6 @@
charger_range(0),
charger_heading(0),
mode(MODE_WORK),
- at_dest( false ),
graph(),
graphvis( graph ),
last_node( NULL ),
@@ -254,13 +289,7 @@
//pos->AddFlagDecrCallback( (stg_model_callback_t)FlagDecr, NULL );
pos->AddVisualizer( &graphvis, true );
-
- // get the map
- Model* cave = pos->GetWorld()->GetModel( "cave" );
- assert(cave);
- Geom g = cave->GetGeom();
-
if( map_data == NULL )
{
map_data = new uint8_t[map_width*map_height*2];
@@ -269,12 +298,17 @@
// non-zero pixels
memset( map_data, 0, sizeof(uint8_t) * map_width *
map_height);
- cave->Rasterize( map_data,
- map_width,
- map_height,
-
g.size.x/(float)map_width,
-
g.size.y/(float)map_height );
+ // get the map
+ map_model = pos->GetWorld()->GetModel( "cave" );
+ assert(map_model);
+ Geom g = map_model->GetGeom();
+ map_model->Rasterize( map_data,
+
map_width,
+
map_height,
+
g.size.x/(float)map_width,
+
g.size.y/(float)map_height );
+
// putchar( '\n' );
// for( unsigned int y=0; y<map_height; y++ )
// {
@@ -299,9 +333,16 @@
assert( (map_data[i] == 1) || (map_data[i] ==
9) );
}
}
-
+
+ Plan( source );
+ //puts("");
+ }
+
+ void Plan( Model* dest )
+ {
Pose pose = pos->GetPose();
- Pose sp = source->GetPose();
+ Pose sp = dest->GetPose();
+ Geom g = map_model->GetGeom();
point_t start( MetersToCell(pose.x, g.size.x, map_width),
MetersToCell(pose.y, g.size.y,
map_height) );
@@ -320,23 +361,30 @@
path );
//printf( "#%s:\n", result ? "PATH" : "NOPATH" );
+
+ graph.nodes.clear();
- FOR_EACH( it, path )
- {
- //printf( "%d, %d\n", it->x, it->y );
-
- Node* node = new Node( Pose( CellToMeters(it->x, g.size.x,
map_width ),
-
CellToMeters(it->y, g.size.y, map_height),
-
0, 0 ) );
- graph.AddNode( node );
-
- if( last_node )
- last_node->AddEdge( new Edge( node ) );
-
- last_node = node;
- }
-
- //puts("");
+ unsigned int dist = 0;
+ //FOR_EACH( it, path )
+ for( std::vector<point_t>::reverse_iterator rit = path.rbegin();
+ rit != path.rend();
+ ++rit )
+ {
+ //printf( "%d, %d\n", it->x, it->y );
+
+ Node* node = new Node( Pose( CellToMeters(rit->x, g.size.x,
map_width ),
+
CellToMeters(rit->y, g.size.y, map_height),
+
0, 0 ) );
+
+ node->value = dist++;
+
+ graph.AddNode( node );
+
+ if( last_node )
+ last_node->AddEdge( new Edge( node ) );
+
+ last_node = node;
+ }
}
void Dock()
@@ -506,15 +554,18 @@
// if( y < 0 ) y = 0;
- Model* goal = pos->GetFlagCount() ? sink : source;
- Pose gp = goal->GetPose();
+ //Model* goal = pos->GetFlagCount() ? sink : source;
+ //Pose gp = goal->GetPose();
//printf( "seeking %s\n", goal->Token() );
double a_goal =
- // dtor( ( pos->GetFlagCount() ) ? have[y][x] :
need[y][x] );
- atan2( gp.y - pose.y, gp.x - pose.x );
+ // 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 );
+
// if we are low on juice - find the direction to the
recharger instead
if( Hungry() )
{
@@ -618,31 +669,26 @@
if( hypot( sourcepose.x-pose.x, sourcepose.y-pose.y ) <
sourcegeom.size.x/2.0 &&
pos->GetFlagCount() < PAYLOAD )
{
- if( ++robot->work_get > workduration )
- {
- // transfer a chunk from source to robot
- pos->PushFlag( robot->source->PopFlag() );
- robot->work_get = 0;
- }
+ // transfer a chunk from source to robot
+ pos->PushFlag( robot->source->PopFlag() );
+
+ if( pos->GetFlagCount() == PAYLOAD )
+ robot->Plan( robot->sink ); // we're done working
}
- robot->at_dest = false;
-
// if we're close to the sink we lose a flag
Pose sinkpose = robot->sink->GetPose();
+ Geom sinkgeom = robot->sink->GetGeom();
- if( hypot( sinkpose.x-pose.x, sinkpose.y-pose.y ) <
sourcegeom.size.x/2.0 &&
- pos->GetFlagCount() )
+ if( hypot( sinkpose.x-pose.x, sinkpose.y-pose.y ) <
sinkgeom.size.x/2.0 &&
+ pos->GetFlagCount() > 0 )
{
- robot->at_dest = true;
+ //puts( "dropping" );
+ // transfer a chunk between robot and goal
+ robot->sink->PushFlag( pos->PopFlag() );
- if( ++robot->work_put > workduration )
- {
- //puts( "dropping" );
- // transfer a chunk between robot and goal
- robot->sink->PushFlag( pos->PopFlag() );
- robot->work_put = 0;
- }
+ if( pos->GetFlagCount() == 0 )
+ robot->Plan( robot->source ); // we're done dropping
off
}
@@ -682,7 +728,7 @@
static int FlagIncr( Model* mod, Robot* robot )
- {
+ {
printf( "model %s collected flag\n", mod->Token() );
return 0;
}
@@ -695,9 +741,10 @@
};
-unsigned int Robot::map_width( 100 );
-unsigned int Robot::map_height( 100 );
+unsigned int Robot::map_width( 50 );
+unsigned int Robot::map_height( 50 );
uint8_t* Robot::map_data( NULL );
+Model* Robot::map_model( NULL );
void split( const std::string& text, const std::string& separators,
std::vector<std::string>& words)
{
Modified: code/stage/trunk/examples/ctrl/sink.cc
===================================================================
--- code/stage/trunk/examples/ctrl/sink.cc 2010-02-19 02:38:04 UTC (rev
8557)
+++ code/stage/trunk/examples/ctrl/sink.cc 2010-02-19 21:28:18 UTC (rev
8558)
@@ -8,8 +8,8 @@
// Stage calls this when the model starts up
extern "C" int Init( Model* mod )
{
- mod->AddUpdateCallback( (stg_model_callback_t)Update, NULL );
- mod->Subscribe();
+ //mod->AddUpdateCallback( (stg_model_callback_t)Update, NULL );
+ //mod->Subscribe();
return 0; //ok
}
Modified: code/stage/trunk/worlds/fasr2.world
===================================================================
--- code/stage/trunk/worlds/fasr2.world 2010-02-19 02:38:04 UTC (rev 8557)
+++ code/stage/trunk/worlds/fasr2.world 2010-02-19 21:28:18 UTC (rev 8558)
@@ -14,7 +14,7 @@
quit_time 3600 # 1 hour of simulated time
#quit_time 1800 # hour of simulated time
-resolution 0.02
+resolution 0.05
threads 0
@@ -23,9 +23,9 @@
(
size [ 980.000 1016.000 ]
- center [ -15.341 4.193 ]
+ center [ -0.203 -1.107 ]
rotate [ 0 0 ]
- scale 13.528
+ scale 9.251
show_data 1
show_flags 1
@@ -163,7 +163,7 @@
define autorob pioneer2dx
(
- sicklaser( samples 32 range_max 5 laser_return 2 watts 30 )
+ sicklaser( samples 32 range_max 4 laser_return 2 watts 30 )
# ctrl "fasr2"
joules 100000
joules_capacity 400000
@@ -194,8 +194,31 @@
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 [-10.777 11.353 0 125.831] joules 100000 )
+redbot( pose [-12.601 11.375 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 )
+
+
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 )
@@ -205,49 +228,159 @@
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 [-10.348 7.992 0 174.453] joules 200000 )
+bluebot( pose [-9.795 8.473 0 174.453] joules 200000 )
-#greenbot( pose [-4.059 16.220 0 -117.456] joules 400000 )
-#greenbot( pose [-2.610 16.957 0 -117.456] joules 400000 )
-#greenbot( pose [-1.794 15.087 0 -117.456] joules 400000 )
-#greenbot( pose [-4.164 15.272 0 -117.456] joules 400000 )
-#greenbot( pose [-3.348 14.771 0 -117.456] joules 400000 )
-#greenbot( pose [-2.242 15.930 0 -117.456] joules 400000 )
-#greenbot( pose [-3.348 17.036 0 -117.456] joules 400000 )
-#greenbot( pose [-4.322 17.510 0 -117.456] joules 400000 )
-#greenbot( pose [-4.822 16.536 0 -117.456] joules 400000 )
-#greenbot( pose [-4.980 15.693 0 -117.456] joules 400000 )
+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 )
-#cyanbot( pose [-7.576 4.137 0 44.991] joules 100000 )
-#cyanbot( pose [-8.459 4.269 0 44.991] joules 100000 )
-#cyanbot( pose [-9.907 3.766 0 44.991] joules 100000 )
-#cyanbot( pose [-10.640 2.698 0 44.991] joules 100000 )
-#cyanbot( pose [-8.557 1.729 0 44.991] joules 100000 )
-#cyanbot( pose [-9.821 1.505 0 44.991] joules 100000 )
-#cyanbot( pose [-7.926 3.090 0 44.991] joules 100000 )
-#cyanbot( pose [-9.038 2.865 0 44.991] joules 100000 )
-#cyanbot( pose [-11.097 0.973 0 44.991] joules 100000 )
-#cyanbot( pose [-11.673 2.537 0 44.991] joules 100000 )
+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 )
-#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.163 6.524 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 [-15.004 6.340 0 35.145] joules 200000 )
+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 )
-#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.718 14.877 0 -143.181] joules 300000 )
+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 )
+
+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 [-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.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 [-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 [-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.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 )
+
Added: code/stage/trunk/worlds/fasr2_duo.world
===================================================================
--- code/stage/trunk/worlds/fasr2_duo.world (rev 0)
+++ code/stage/trunk/worlds/fasr2_duo.world 2010-02-19 21:28:18 UTC (rev
8558)
@@ -0,0 +1,320 @@
+
+# FASR demo world
+# Authors: Richard Vaughan
+# $Id: fasr.world,v 1.4 2008-04-01 23:57:41 rtv Exp $
+
+include "pioneer.inc"
+include "map.inc"
+include "sick.inc"
+
+speedup 10.000
+paused 1
+
+# time at which to pause (in GUI mode) or quit (in headless mode) the
simulation
+quit_time 3600 # 1 hour of simulated time
+#quit_time 1800 # hour of simulated time
+
+resolution 0.02
+
+threads 0
+
+# configure the GUI window
+window
+(
+ size [ 980.000 1016.000 ]
+
+ center [ -3.598 0.596 ]
+ rotate [ 0 0 ]
+ scale 9.570
+
+ show_data 1
+ show_flags 1
+
+ # interval 50
+)
+
+# load an environment bitmap
+floorplan
+(
+ name "cave"
+ pose [0 0 0 0]
+ size [100.000 100.000 0.600]
+ bitmap "bitmaps/cave.png"
+)
+
+zone
+(
+ color "green"
+ pose [ 38.682 -25.820 0 0 ]
+ name "green_source"
+ ctrl "source"
+)
+
+zone( color "DarkGreen"
+ pose [ -10.930 44.453 0 0 ]
+ name "green_sink"
+ ctrl "sink"
+)
+
+zone( color "blue"
+ pose [ -40.264 -18.084 0 0 ]
+ name "blue_source"
+ ctrl "source"
+)
+
+zone( color "DarkBlue"
+ pose [ 39.986 37.517 0 0 ]
+ name "blue_sink"
+ ctrl "sink"
+)
+
+zone( color "red"
+ pose [ -41.325 32.878 0 0 ]
+ name "red_source"
+ ctrl "source"
+)
+
+zone( color "DarkRed"
+ pose [ 40.730 22.450 0 0 ]
+ name "red_sink"
+ ctrl "sink"
+)
+
+zone( color "yellow"
+ pose [ -37.146 -39.531 0 0 ]
+ name "yellow_source"
+ ctrl "source"
+)
+
+zone( color_rgba [ 0.8 0.8 0 1 ]
+ pose [ -38.243 9.591 0 0 ]
+ name "yellow_sink"
+ ctrl "sink"
+)
+
+zone( color "cyan"
+ pose [ 26.255 41.679 0 0 ]
+ name "cyan_source"
+ ctrl "source"
+)
+
+zone( color "DarkCyan"
+ pose [ 9.412 -40.363 0 0 ]
+ name "cyan_sink"
+ ctrl "sink"
+)
+
+zone( color "magenta"
+ pose [ -14.246 -42.150 0 0 ]
+ name "magenta_source"
+ ctrl "source"
+)
+
+zone( color "DarkMagenta"
+ pose [ 38.511 -14.808 0 0 ]
+ name "magenta_sink"
+ ctrl "sink"
+)
+
+
+define charging_bump model
+(
+ pose [0.240 0 -0.100 0 ]
+ size [0.120 0.050 0.100]
+ take_watts 2000.0
+ color "orange"
+ obstacle_return 0
+)
+
+define charge_station model
+(
+ size [ 0.100 0.300 0.100 ]
+ color "purple"
+
+ # 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.200 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
+ )
+
+)
+
+#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 ] )
+
+define autorob pioneer2dx
+(
+ sicklaser( samples 32 range_max 5 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 ] ) )
+
+ # small speed optimization
+ # trail_length 0
+)
+
+define redbot autorob( color "red" ctrl "fasr2 red" )
+define greenbot autorob( color "green" ctrl "fasr2 green" )
+define bluebot autorob( color "blue" ctrl "fasr2 blue" )
+define cyanbot autorob( color "cyan" ctrl "fasr2 cyan" )
+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 [-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 [-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 [-10.777 11.353 0 125.831] joules 100000 )
+
+
+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 [-10.276 7.872 0 174.453] joules 200000 )
+
+cyanbot( pose [-4.059 16.220 0 -117.456] joules 400000 )
+cyanbot( pose [-2.610 16.957 0 -117.456] joules 400000 )
+#cyanbot( pose [-1.794 15.087 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.164 15.272 0 -117.456] joules 400000 )
+#cyanbot( pose [-3.348 14.771 0 -117.456] joules 400000 )
+#cyanbot( pose [-2.242 15.930 0 -117.456] joules 400000 )
+#cyanbot( pose [-3.348 17.036 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.322 17.510 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.822 16.536 0 -117.456] joules 400000 )
+#cyanbot( pose [-5.373 17.628 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.710 18.415 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 [-5.796 16.509 0 -117.456] joules 400000 )
+
+greenbot( pose [-7.576 4.137 0 44.991] joules 100000 )
+greenbot( pose [-8.459 4.269 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 [-8.557 1.729 0 44.991] joules 100000 )
+#greenbot( pose [-9.821 1.505 0 44.991] joules 100000 )
+#greenbot( pose [-7.926 3.090 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 [-11.689 2.634 0 44.991] joules 100000 )
+
+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.163 6.524 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.004 6.340 0 35.145] joules 200000 )
+
+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.425 15.507 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.957 16.386 0 -143.181] joules 300000 )
+#magentabot( pose [-7.925 16.234 0 -143.181] joules 300000 )
+#magentabot( pose [-8.794 14.855 0 -143.181] joules 300000 )
+
Added: code/stage/trunk/worlds/fasr2_solo.world
===================================================================
--- code/stage/trunk/worlds/fasr2_solo.world (rev 0)
+++ code/stage/trunk/worlds/fasr2_solo.world 2010-02-19 21:28:18 UTC (rev
8558)
@@ -0,0 +1,320 @@
+
+# FASR demo world
+# Authors: Richard Vaughan
+# $Id: fasr.world,v 1.4 2008-04-01 23:57:41 rtv Exp $
+
+include "pioneer.inc"
+include "map.inc"
+include "sick.inc"
+
+speedup 10.000
+paused 1
+
+# time at which to pause (in GUI mode) or quit (in headless mode) the
simulation
+quit_time 3600 # 1 hour of simulated time
+#quit_time 1800 # hour of simulated time
+
+resolution 0.02
+
+threads 0
+
+# configure the GUI window
+window
+(
+ size [ 980.000 1016.000 ]
+
+ center [ -3.598 0.596 ]
+ rotate [ 0 0 ]
+ scale 9.570
+
+ show_data 1
+ show_flags 1
+
+ # interval 50
+)
+
+# load an environment bitmap
+floorplan
+(
+ name "cave"
+ pose [0 0 0 0]
+ size [100.000 100.000 0.600]
+ bitmap "bitmaps/cave.png"
+)
+
+zone
+(
+ color "green"
+ pose [ 38.682 -25.820 0 0 ]
+ name "green_source"
+ ctrl "source"
+)
+
+zone( color "DarkGreen"
+ pose [ -10.930 44.453 0 0 ]
+ name "green_sink"
+ ctrl "sink"
+)
+
+zone( color "blue"
+ pose [ -40.264 -18.084 0 0 ]
+ name "blue_source"
+ ctrl "source"
+)
+
+zone( color "DarkBlue"
+ pose [ 39.986 37.517 0 0 ]
+ name "blue_sink"
+ ctrl "sink"
+)
+
+zone( color "red"
+ pose [ -41.325 32.878 0 0 ]
+ name "red_source"
+ ctrl "source"
+)
+
+zone( color "DarkRed"
+ pose [ 40.730 22.450 0 0 ]
+ name "red_sink"
+ ctrl "sink"
+)
+
+zone( color "yellow"
+ pose [ -37.146 -39.531 0 0 ]
+ name "yellow_source"
+ ctrl "source"
+)
+
+zone( color_rgba [ 0.8 0.8 0 1 ]
+ pose [ -38.243 9.591 0 0 ]
+ name "yellow_sink"
+ ctrl "sink"
+)
+
+zone( color "cyan"
+ pose [ 26.255 41.679 0 0 ]
+ name "cyan_source"
+ ctrl "source"
+)
+
+zone( color "DarkCyan"
+ pose [ 9.412 -40.363 0 0 ]
+ name "cyan_sink"
+ ctrl "sink"
+)
+
+zone( color "magenta"
+ pose [ -14.246 -42.150 0 0 ]
+ name "magenta_source"
+ ctrl "source"
+)
+
+zone( color "DarkMagenta"
+ pose [ 38.511 -14.808 0 0 ]
+ name "magenta_sink"
+ ctrl "sink"
+)
+
+
+define charging_bump model
+(
+ pose [0.240 0 -0.100 0 ]
+ size [0.120 0.050 0.100]
+ take_watts 2000.0
+ color "orange"
+ obstacle_return 0
+)
+
+define charge_station model
+(
+ size [ 0.100 0.300 0.100 ]
+ color "purple"
+
+ # 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.200 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
+ )
+
+)
+
+#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 ] )
+
+define autorob pioneer2dx
+(
+ sicklaser( samples 32 range_max 5 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 ] ) )
+
+ # small speed optimization
+ # trail_length 0
+)
+
+define redbot autorob( color "red" ctrl "fasr2 red" )
+define greenbot autorob( color "green" ctrl "fasr2 green" )
+define bluebot autorob( color "blue" ctrl "fasr2 blue" )
+define cyanbot autorob( color "cyan" ctrl "fasr2 cyan" )
+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 [-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 [-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 [-10.777 11.353 0 125.831] joules 100000 )
+
+
+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 [-10.276 7.872 0 174.453] joules 200000 )
+
+cyanbot( pose [-4.059 16.220 0 -117.456] joules 400000 )
+#cyanbot( pose [-2.610 16.957 0 -117.456] joules 400000 )
+#cyanbot( pose [-1.794 15.087 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.164 15.272 0 -117.456] joules 400000 )
+#cyanbot( pose [-3.348 14.771 0 -117.456] joules 400000 )
+#cyanbot( pose [-2.242 15.930 0 -117.456] joules 400000 )
+#cyanbot( pose [-3.348 17.036 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.322 17.510 0 -117.456] joules 400000 )
+#cyanbot( pose [-4.822 16.536 0 -117.456] joules 400000 )
+#cyanbot( pose [-5.373 17.628 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.710 18.415 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 [-5.796 16.509 0 -117.456] joules 400000 )
+
+greenbot( pose [-7.576 4.137 0 44.991] joules 100000 )
+#greenbot( pose [-8.459 4.269 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 [-8.557 1.729 0 44.991] joules 100000 )
+#greenbot( pose [-9.821 1.505 0 44.991] joules 100000 )
+#greenbot( pose [-7.926 3.090 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 [-11.689 2.634 0 44.991] joules 100000 )
+
+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.163 6.524 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.004 6.340 0 35.145] joules 200000 )
+
+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.425 15.507 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.957 16.386 0 -143.181] joules 300000 )
+#magentabot( pose [-7.925 16.234 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® 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