Update of /cvsroot/playerstage/code/stage/worlds/playerswarm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18271/playerswarm
Added Files:
Makefile args.h many.sh multiple.cc pss.cfg pss.world
pss3d.cfg pss3d.world pss_large.cfg pss_large.world single.cc
Log Message:
added 100-robot swarm demo. Useful for testing
--- NEW FILE: pss_large.cfg ---
# load the Stage plugin simulation driver
driver
(
name "stage"
provides ["simulation:0" ]
plugin "libstageplugin"
# load the named file into the simulator
worldfile "pss_large.world"
)
# Create a Stage driver and attach position2d and laser interfaces
# to the model "r1"
driver( name "stage" model "r00" provides ["position2d:00" "sonar:00"
"graphics2d:00"] )
driver( name "stage" model "r01" provides ["position2d:01" "sonar:01"
"graphics2d:01"] )
driver( name "stage" model "r02" provides ["position2d:02" "sonar:02"
"graphics2d:02"] )
driver( name "stage" model "r03" provides ["position2d:03" "sonar:03"
"graphics2d:03"] )
driver( name "stage" model "r04" provides ["position2d:04" "sonar:04"
"graphics2d:04"] )
driver( name "stage" model "r05" provides ["position2d:05" "sonar:05"
"graphics2d:05"] )
driver( name "stage" model "r06" provides ["position2d:06" "sonar:06"
"graphics2d:06"] )
driver( name "stage" model "r07" provides ["position2d:07" "sonar:07"
"graphics2d:07"] )
driver( name "stage" model "r08" provides ["position2d:08" "sonar:08"
"graphics2d:08"] )
driver( name "stage" model "r09" provides ["position2d:09" "sonar:09"
"graphics2d:09"] )
driver( name "stage" model "r10" provides ["position2d:10" "sonar:10"
"graphics2d:10"] )
driver( name "stage" model "r11" provides ["position2d:11" "sonar:11"
"graphics2d:11"] )
driver( name "stage" model "r12" provides ["position2d:12" "sonar:12"
"graphics2d:12"] )
driver( name "stage" model "r13" provides ["position2d:13" "sonar:13"
"graphics2d:13"] )
driver( name "stage" model "r14" provides ["position2d:14" "sonar:14"
"graphics2d:14"] )
driver( name "stage" model "r15" provides ["position2d:15" "sonar:15"
"graphics2d:15"] )
driver( name "stage" model "r16" provides ["position2d:16" "sonar:16"
"graphics2d:16"] )
driver( name "stage" model "r17" provides ["position2d:17" "sonar:17"
"graphics2d:17"] )
driver( name "stage" model "r18" provides ["position2d:18" "sonar:18"
"graphics2d:18"] )
driver( name "stage" model "r19" provides ["position2d:19" "sonar:19"
"graphics2d:19"] )
driver( name "stage" model "r20" provides ["position2d:20" "sonar:20"
"graphics2d:20"] )
driver( name "stage" model "r21" provides ["position2d:21" "sonar:21"
"graphics2d:21"] )
driver( name "stage" model "r22" provides ["position2d:22" "sonar:22"
"graphics2d:22"] )
driver( name "stage" model "r23" provides ["position2d:23" "sonar:23"
"graphics2d:23"] )
driver( name "stage" model "r24" provides ["position2d:24" "sonar:24"
"graphics2d:24"] )
driver( name "stage" model "r25" provides ["position2d:25" "sonar:25"
"graphics2d:25"] )
driver( name "stage" model "r26" provides ["position2d:26" "sonar:26"
"graphics2d:26"] )
driver( name "stage" model "r27" provides ["position2d:27" "sonar:27"
"graphics2d:27"] )
driver( name "stage" model "r28" provides ["position2d:28" "sonar:28"
"graphics2d:28"] )
driver( name "stage" model "r29" provides ["position2d:29" "sonar:29"
"graphics2d:29"] )
driver( name "stage" model "r30" provides ["position2d:30" "sonar:30"
"graphics2d:30"] )
driver( name "stage" model "r31" provides ["position2d:31" "sonar:31"
"graphics2d:31"] )
driver( name "stage" model "r32" provides ["position2d:32" "sonar:32"
"graphics2d:32"] )
driver( name "stage" model "r33" provides ["position2d:33" "sonar:33"
"graphics2d:33"] )
driver( name "stage" model "r34" provides ["position2d:34" "sonar:34"
"graphics2d:34"] )
driver( name "stage" model "r35" provides ["position2d:35" "sonar:35"
"graphics2d:35"] )
driver( name "stage" model "r36" provides ["position2d:36" "sonar:36"
"graphics2d:36"] )
driver( name "stage" model "r37" provides ["position2d:37" "sonar:37"
"graphics2d:37"] )
driver( name "stage" model "r38" provides ["position2d:38" "sonar:38"
"graphics2d:38"] )
driver( name "stage" model "r39" provides ["position2d:39" "sonar:39"
"graphics2d:39"] )
driver( name "stage" model "r40" provides ["position2d:40" "sonar:40"
"graphics2d:40"] )
driver( name "stage" model "r41" provides ["position2d:41" "sonar:41"
"graphics2d:41"] )
driver( name "stage" model "r42" provides ["position2d:42" "sonar:42"
"graphics2d:42"] )
driver( name "stage" model "r43" provides ["position2d:43" "sonar:43"
"graphics2d:43"] )
driver( name "stage" model "r44" provides ["position2d:44" "sonar:44"
"graphics2d:44"] )
driver( name "stage" model "r45" provides ["position2d:45" "sonar:45"
"graphics2d:45"] )
driver( name "stage" model "r46" provides ["position2d:46" "sonar:46"
"graphics2d:46"] )
driver( name "stage" model "r47" provides ["position2d:47" "sonar:47"
"graphics2d:47"] )
driver( name "stage" model "r48" provides ["position2d:48" "sonar:48"
"graphics2d:48"] )
driver( name "stage" model "r49" provides ["position2d:49" "sonar:49"
"graphics2d:49"] )
driver( name "stage" model "r50" provides ["position2d:50" "sonar:50"
"graphics2d:50"] )
driver( name "stage" model "r51" provides ["position2d:51" "sonar:51"
"graphics2d:51"] )
driver( name "stage" model "r52" provides ["position2d:52" "sonar:52"
"graphics2d:52"] )
driver( name "stage" model "r53" provides ["position2d:53" "sonar:53"
"graphics2d:53"] )
driver( name "stage" model "r54" provides ["position2d:54" "sonar:54"
"graphics2d:54"] )
driver( name "stage" model "r55" provides ["position2d:55" "sonar:55"
"graphics2d:55"] )
driver( name "stage" model "r56" provides ["position2d:56" "sonar:56"
"graphics2d:56"] )
driver( name "stage" model "r57" provides ["position2d:57" "sonar:57"
"graphics2d:57"] )
driver( name "stage" model "r58" provides ["position2d:58" "sonar:58"
"graphics2d:58"] )
driver( name "stage" model "r59" provides ["position2d:59" "sonar:59"
"graphics2d:59"] )
driver( name "stage" model "r60" provides ["position2d:60" "sonar:60"
"graphics2d:60"] )
driver( name "stage" model "r61" provides ["position2d:61" "sonar:61"
"graphics2d:61"] )
driver( name "stage" model "r62" provides ["position2d:62" "sonar:62"
"graphics2d:62"] )
driver( name "stage" model "r63" provides ["position2d:63" "sonar:63"
"graphics2d:63"] )
driver( name "stage" model "r64" provides ["position2d:64" "sonar:64"
"graphics2d:64"] )
driver( name "stage" model "r65" provides ["position2d:65" "sonar:65"
"graphics2d:65"] )
driver( name "stage" model "r66" provides ["position2d:66" "sonar:66"
"graphics2d:66"] )
driver( name "stage" model "r67" provides ["position2d:67" "sonar:67"
"graphics2d:67"] )
driver( name "stage" model "r68" provides ["position2d:68" "sonar:68"
"graphics2d:68"] )
driver( name "stage" model "r69" provides ["position2d:69" "sonar:69"
"graphics2d:69"] )
driver( name "stage" model "r70" provides ["position2d:70" "sonar:70"
"graphics2d:70"] )
driver( name "stage" model "r71" provides ["position2d:71" "sonar:71"
"graphics2d:71"] )
driver( name "stage" model "r72" provides ["position2d:72" "sonar:72"
"graphics2d:72"] )
driver( name "stage" model "r73" provides ["position2d:73" "sonar:73"
"graphics2d:73"] )
driver( name "stage" model "r74" provides ["position2d:74" "sonar:74"
"graphics2d:74"] )
driver( name "stage" model "r75" provides ["position2d:75" "sonar:75"
"graphics2d:75"] )
driver( name "stage" model "r76" provides ["position2d:76" "sonar:76"
"graphics2d:76"] )
driver( name "stage" model "r77" provides ["position2d:77" "sonar:77"
"graphics2d:77"] )
driver( name "stage" model "r78" provides ["position2d:78" "sonar:78"
"graphics2d:78"] )
driver( name "stage" model "r79" provides ["position2d:79" "sonar:79"
"graphics2d:79"] )
driver( name "stage" model "r80" provides ["position2d:80" "sonar:80"
"graphics2d:80"] )
driver( name "stage" model "r81" provides ["position2d:81" "sonar:81"
"graphics2d:81"] )
driver( name "stage" model "r82" provides ["position2d:82" "sonar:82"
"graphics2d:82"] )
driver( name "stage" model "r83" provides ["position2d:83" "sonar:83"
"graphics2d:83"] )
driver( name "stage" model "r84" provides ["position2d:84" "sonar:84"
"graphics2d:84"] )
driver( name "stage" model "r85" provides ["position2d:85" "sonar:85"
"graphics2d:85"] )
driver( name "stage" model "r86" provides ["position2d:86" "sonar:86"
"graphics2d:86"] )
driver( name "stage" model "r87" provides ["position2d:87" "sonar:87"
"graphics2d:87"] )
driver( name "stage" model "r88" provides ["position2d:88" "sonar:88"
"graphics2d:88"] )
driver( name "stage" model "r89" provides ["position2d:89" "sonar:89"
"graphics2d:89"] )
driver( name "stage" model "r90" provides ["position2d:90" "sonar:90"
"graphics2d:90"] )
driver( name "stage" model "r91" provides ["position2d:91" "sonar:91"
"graphics2d:91"] )
driver( name "stage" model "r92" provides ["position2d:92" "sonar:92"
"graphics2d:92"] )
driver( name "stage" model "r93" provides ["position2d:93" "sonar:93"
"graphics2d:93"] )
driver( name "stage" model "r94" provides ["position2d:94" "sonar:94"
"graphics2d:94"] )
driver( name "stage" model "r95" provides ["position2d:95" "sonar:95"
"graphics2d:95"] )
driver( name "stage" model "r96" provides ["position2d:96" "sonar:96"
"graphics2d:96"] )
driver( name "stage" model "r97" provides ["position2d:97" "sonar:97"
"graphics2d:97"] )
driver( name "stage" model "r98" provides ["position2d:98" "sonar:98"
"graphics2d:98"] )
driver( name "stage" model "r99" provides ["position2d:99" "sonar:99"
"graphics2d:99"] )
--- NEW FILE: args.h ---
#include <libplayerc++/playerc++.h>
#include <iostream>
#include <unistd.h>
std::string gHostname(PlayerCc::PLAYER_HOSTNAME);
uint gPort(PlayerCc::PLAYER_PORTNUM);
uint gIndex(0);
uint gDebug(0);
uint gFrequency(10); // Hz
uint gDataMode(PLAYER_DATAMODE_PUSH);
bool gUseLaser(false);
uint gPop(1);
void print_usage(int argc, char** argv);
int parse_args(int argc, char** argv)
{
// set the flags
const char* optflags = "h:p:i:n:d:u:lm:";
int ch;
// use getopt to parse the flags
while(-1 != (ch = getopt(argc, argv, optflags)))
{
switch(ch)
{
// case values must match long_options
case 'h': // hostname
gHostname = optarg;
break;
case 'n': // number of robots
gPop = atoi(optarg);
break;
case 'p': // port
gPort = atoi(optarg);
break;
case 'i': // index
gIndex = atoi(optarg);
break;
case 'd': // debug
gDebug = atoi(optarg);
break;
case 'u': // update rate
gFrequency = atoi(optarg);
break;
case 'm': // datamode
gDataMode = atoi(optarg);
break;
case 'l': // datamode
gUseLaser = true;
break;
case '?': // help
case ':':
default: // unknown
print_usage(argc, argv);
exit (-1);
}
}
return (0);
} // end parse_args
void print_usage(int argc, char** argv)
{
using namespace std;
cerr << "USAGE: " << *argv << " [options]" << endl << endl;
cerr << "Where [options] can be:" << endl;
cerr << " -h <hostname> : hostname to connect to (default: "
<< PlayerCc::PLAYER_HOSTNAME << ")" << endl;
cerr << " -p <port> : port where Player will listen (default: "
<< PlayerCc::PLAYER_PORTNUM << ")" << endl;
cerr << " -i <index> : device index (default: 0)"
<< endl;
cerr << " -n <number of robots> : population size (default: "
<< 1 << ")" << endl;
cerr << " -d <level> : debug message level (0 = none -- 9 = all)"
<< endl;
cerr << " -u <rate> : set server update rate to <rate> in Hz"
<< endl;
cerr << " -l : Use laser if applicable"
<< endl;
cerr << " -m <datamode> : set server data delivery mode"
<< endl;
cerr << " PLAYER_DATAMODE_PUSH = "
<< PLAYER_DATAMODE_PUSH << endl;
cerr << " PLAYER_DATAMODE_PULL = "
<< PLAYER_DATAMODE_PULL << endl;
/* cerr << " PLAYER_DATAMODE_PUSH_ALL = "
<< PLAYER_DATAMODE_PUSH_ALL << endl;
cerr << " PLAYER_DATAMODE_PULL_ALL = "
<< PLAYER_DATAMODE_PULL_ALL << endl;
cerr << " PLAYER_DATAMODE_PUSH_NEW = "
<< PLAYER_DATAMODE_PUSH_NEW << endl;
cerr << " PLAYER_DATAMODE_PULL_NEW = "
<< PLAYER_DATAMODE_PULL_NEW << endl;
cerr << " PLAYER_DATAMODE_ASYNC = "
<< PLAYER_DATAMODE_ASYNC << endl;*/
} // end print_usage
--- NEW FILE: Makefile ---
CXX = g++
CXXFLAGS = -Wall `pkg-config --cflags playerc++`
LDFLAGS = `pkg-config --libs playerc++`
all: single multiple
single: single.cc args.h
$(CXX) $(CXXFLAGS) -o $@ $< $(LDFLAGS)
multiple: multiple.cc args.h
$(CXX) $(CXXFLAGS) -o $@ $< $(LDFLAGS)
clean:
rm -f multiple single
--- NEW FILE: pss.cfg ---
# load the Stage plugin simulation driver
driver
(
name "stage"
provides ["simulation:0" ]
plugin "libstageplugin"
# load the named file into the simulator
worldfile "pss.world"
)
# Create a Stage driver and attach position2d and laser interfaces
# to the model "r1"
driver( name "stage" model "r00" provides ["position2d:00" "sonar:00"
"graphics2d:00"] )
driver( name "stage" model "r01" provides ["position2d:01" "sonar:01"
"graphics2d:01"] )
driver( name "stage" model "r02" provides ["position2d:02" "sonar:02"
"graphics2d:02"] )
driver( name "stage" model "r03" provides ["position2d:03" "sonar:03"
"graphics2d:03"] )
driver( name "stage" model "r04" provides ["position2d:04" "sonar:04"
"graphics2d:04"] )
driver( name "stage" model "r05" provides ["position2d:05" "sonar:05"
"graphics2d:05"] )
driver( name "stage" model "r06" provides ["position2d:06" "sonar:06"
"graphics2d:06"] )
driver( name "stage" model "r07" provides ["position2d:07" "sonar:07"
"graphics2d:07"] )
driver( name "stage" model "r08" provides ["position2d:08" "sonar:08"
"graphics2d:08"] )
driver( name "stage" model "r09" provides ["position2d:09" "sonar:09"
"graphics2d:09"] )
driver( name "stage" model "r10" provides ["position2d:10" "sonar:10"
"graphics2d:10"] )
driver( name "stage" model "r11" provides ["position2d:11" "sonar:11"
"graphics2d:11"] )
driver( name "stage" model "r12" provides ["position2d:12" "sonar:12"
"graphics2d:12"] )
driver( name "stage" model "r13" provides ["position2d:13" "sonar:13"
"graphics2d:13"] )
driver( name "stage" model "r14" provides ["position2d:14" "sonar:14"
"graphics2d:14"] )
driver( name "stage" model "r15" provides ["position2d:15" "sonar:15"
"graphics2d:15"] )
driver( name "stage" model "r16" provides ["position2d:16" "sonar:16"
"graphics2d:16"] )
driver( name "stage" model "r17" provides ["position2d:17" "sonar:17"
"graphics2d:17"] )
driver( name "stage" model "r18" provides ["position2d:18" "sonar:18"
"graphics2d:18"] )
driver( name "stage" model "r19" provides ["position2d:19" "sonar:19"
"graphics2d:19"] )
driver( name "stage" model "r20" provides ["position2d:20" "sonar:20"
"graphics2d:20"] )
driver( name "stage" model "r21" provides ["position2d:21" "sonar:21"
"graphics2d:21"] )
driver( name "stage" model "r22" provides ["position2d:22" "sonar:22"
"graphics2d:22"] )
driver( name "stage" model "r23" provides ["position2d:23" "sonar:23"
"graphics2d:23"] )
driver( name "stage" model "r24" provides ["position2d:24" "sonar:24"
"graphics2d:24"] )
driver( name "stage" model "r25" provides ["position2d:25" "sonar:25"
"graphics2d:25"] )
driver( name "stage" model "r26" provides ["position2d:26" "sonar:26"
"graphics2d:26"] )
driver( name "stage" model "r27" provides ["position2d:27" "sonar:27"
"graphics2d:27"] )
driver( name "stage" model "r28" provides ["position2d:28" "sonar:28"
"graphics2d:28"] )
driver( name "stage" model "r29" provides ["position2d:29" "sonar:29"
"graphics2d:29"] )
driver( name "stage" model "r30" provides ["position2d:30" "sonar:30"
"graphics2d:30"] )
driver( name "stage" model "r31" provides ["position2d:31" "sonar:31"
"graphics2d:31"] )
driver( name "stage" model "r32" provides ["position2d:32" "sonar:32"
"graphics2d:32"] )
driver( name "stage" model "r33" provides ["position2d:33" "sonar:33"
"graphics2d:33"] )
driver( name "stage" model "r34" provides ["position2d:34" "sonar:34"
"graphics2d:34"] )
driver( name "stage" model "r35" provides ["position2d:35" "sonar:35"
"graphics2d:35"] )
driver( name "stage" model "r36" provides ["position2d:36" "sonar:36"
"graphics2d:36"] )
driver( name "stage" model "r37" provides ["position2d:37" "sonar:37"
"graphics2d:37"] )
driver( name "stage" model "r38" provides ["position2d:38" "sonar:38"
"graphics2d:38"] )
driver( name "stage" model "r39" provides ["position2d:39" "sonar:39"
"graphics2d:39"] )
driver( name "stage" model "r40" provides ["position2d:40" "sonar:40"
"graphics2d:40"] )
driver( name "stage" model "r41" provides ["position2d:41" "sonar:41"
"graphics2d:41"] )
driver( name "stage" model "r42" provides ["position2d:42" "sonar:42"
"graphics2d:42"] )
driver( name "stage" model "r43" provides ["position2d:43" "sonar:43"
"graphics2d:43"] )
driver( name "stage" model "r44" provides ["position2d:44" "sonar:44"
"graphics2d:44"] )
driver( name "stage" model "r45" provides ["position2d:45" "sonar:45"
"graphics2d:45"] )
driver( name "stage" model "r46" provides ["position2d:46" "sonar:46"
"graphics2d:46"] )
driver( name "stage" model "r47" provides ["position2d:47" "sonar:47"
"graphics2d:47"] )
driver( name "stage" model "r48" provides ["position2d:48" "sonar:48"
"graphics2d:48"] )
driver( name "stage" model "r49" provides ["position2d:49" "sonar:49"
"graphics2d:49"] )
driver( name "stage" model "r50" provides ["position2d:50" "sonar:50"
"graphics2d:50"] )
driver( name "stage" model "r51" provides ["position2d:51" "sonar:51"
"graphics2d:51"] )
driver( name "stage" model "r52" provides ["position2d:52" "sonar:52"
"graphics2d:52"] )
driver( name "stage" model "r53" provides ["position2d:53" "sonar:53"
"graphics2d:53"] )
driver( name "stage" model "r54" provides ["position2d:54" "sonar:54"
"graphics2d:54"] )
driver( name "stage" model "r55" provides ["position2d:55" "sonar:55"
"graphics2d:55"] )
driver( name "stage" model "r56" provides ["position2d:56" "sonar:56"
"graphics2d:56"] )
driver( name "stage" model "r57" provides ["position2d:57" "sonar:57"
"graphics2d:57"] )
driver( name "stage" model "r58" provides ["position2d:58" "sonar:58"
"graphics2d:58"] )
driver( name "stage" model "r59" provides ["position2d:59" "sonar:59"
"graphics2d:59"] )
driver( name "stage" model "r60" provides ["position2d:60" "sonar:60"
"graphics2d:60"] )
driver( name "stage" model "r61" provides ["position2d:61" "sonar:61"
"graphics2d:61"] )
driver( name "stage" model "r62" provides ["position2d:62" "sonar:62"
"graphics2d:62"] )
driver( name "stage" model "r63" provides ["position2d:63" "sonar:63"
"graphics2d:63"] )
driver( name "stage" model "r64" provides ["position2d:64" "sonar:64"
"graphics2d:64"] )
driver( name "stage" model "r65" provides ["position2d:65" "sonar:65"
"graphics2d:65"] )
driver( name "stage" model "r66" provides ["position2d:66" "sonar:66"
"graphics2d:66"] )
driver( name "stage" model "r67" provides ["position2d:67" "sonar:67"
"graphics2d:67"] )
driver( name "stage" model "r68" provides ["position2d:68" "sonar:68"
"graphics2d:68"] )
driver( name "stage" model "r69" provides ["position2d:69" "sonar:69"
"graphics2d:69"] )
driver( name "stage" model "r70" provides ["position2d:70" "sonar:70"
"graphics2d:70"] )
driver( name "stage" model "r71" provides ["position2d:71" "sonar:71"
"graphics2d:71"] )
driver( name "stage" model "r72" provides ["position2d:72" "sonar:72"
"graphics2d:72"] )
driver( name "stage" model "r73" provides ["position2d:73" "sonar:73"
"graphics2d:73"] )
driver( name "stage" model "r74" provides ["position2d:74" "sonar:74"
"graphics2d:74"] )
driver( name "stage" model "r75" provides ["position2d:75" "sonar:75"
"graphics2d:75"] )
driver( name "stage" model "r76" provides ["position2d:76" "sonar:76"
"graphics2d:76"] )
driver( name "stage" model "r77" provides ["position2d:77" "sonar:77"
"graphics2d:77"] )
driver( name "stage" model "r78" provides ["position2d:78" "sonar:78"
"graphics2d:78"] )
driver( name "stage" model "r79" provides ["position2d:79" "sonar:79"
"graphics2d:79"] )
driver( name "stage" model "r80" provides ["position2d:80" "sonar:80"
"graphics2d:80"] )
driver( name "stage" model "r81" provides ["position2d:81" "sonar:81"
"graphics2d:81"] )
driver( name "stage" model "r82" provides ["position2d:82" "sonar:82"
"graphics2d:82"] )
driver( name "stage" model "r83" provides ["position2d:83" "sonar:83"
"graphics2d:83"] )
driver( name "stage" model "r84" provides ["position2d:84" "sonar:84"
"graphics2d:84"] )
driver( name "stage" model "r85" provides ["position2d:85" "sonar:85"
"graphics2d:85"] )
driver( name "stage" model "r86" provides ["position2d:86" "sonar:86"
"graphics2d:86"] )
driver( name "stage" model "r87" provides ["position2d:87" "sonar:87"
"graphics2d:87"] )
driver( name "stage" model "r88" provides ["position2d:88" "sonar:88"
"graphics2d:88"] )
driver( name "stage" model "r89" provides ["position2d:89" "sonar:89"
"graphics2d:89"] )
driver( name "stage" model "r90" provides ["position2d:90" "sonar:90"
"graphics2d:90"] )
driver( name "stage" model "r91" provides ["position2d:91" "sonar:91"
"graphics2d:91"] )
driver( name "stage" model "r92" provides ["position2d:92" "sonar:92"
"graphics2d:92"] )
driver( name "stage" model "r93" provides ["position2d:93" "sonar:93"
"graphics2d:93"] )
driver( name "stage" model "r94" provides ["position2d:94" "sonar:94"
"graphics2d:94"] )
driver( name "stage" model "r95" provides ["position2d:95" "sonar:95"
"graphics2d:95"] )
driver( name "stage" model "r96" provides ["position2d:96" "sonar:96"
"graphics2d:96"] )
driver( name "stage" model "r97" provides ["position2d:97" "sonar:97"
"graphics2d:97"] )
driver( name "stage" model "r98" provides ["position2d:98" "sonar:98"
"graphics2d:98"] )
driver( name "stage" model "r99" provides ["position2d:99" "sonar:99"
"graphics2d:99"] )
--- NEW FILE: pss3d.cfg ---
# load the Stage plugin simulation driver
driver
(
name "stage"
provides ["simulation:0" ]
plugin "libstageplugin"
# load the named file into the simulator
#worldfile "pss.world"
worldfile "pss3d.world"
)
# Create a Stage driver and attach position2d and laser interfaces
# to the model "r1"
driver( name "stage" model "r00" provides ["position2d:00" "sonar:00" ] )
driver( name "stage" model "r01" provides ["position2d:01" "sonar:01" ] )
driver( name "stage" model "r02" provides ["position2d:02" "sonar:02" ] )
driver( name "stage" model "r03" provides ["position2d:03" "sonar:03" ] )
driver( name "stage" model "r04" provides ["position2d:04" "sonar:04" ] )
driver( name "stage" model "r05" provides ["position2d:05" "sonar:05" ] )
driver( name "stage" model "r06" provides ["position2d:06" "sonar:06" ] )
driver( name "stage" model "r07" provides ["position2d:07" "sonar:07" ] )
driver( name "stage" model "r08" provides ["position2d:08" "sonar:08" ] )
driver( name "stage" model "r09" provides ["position2d:09" "sonar:09" ] )
driver( name "stage" model "r10" provides ["position2d:10" "sonar:10" ] )
driver( name "stage" model "r11" provides ["position2d:11" "sonar:11" ] )
driver( name "stage" model "r12" provides ["position2d:12" "sonar:12" ] )
driver( name "stage" model "r13" provides ["position2d:13" "sonar:13" ] )
driver( name "stage" model "r14" provides ["position2d:14" "sonar:14" ] )
driver( name "stage" model "r15" provides ["position2d:15" "sonar:15" ] )
driver( name "stage" model "r16" provides ["position2d:16" "sonar:16" ] )
driver( name "stage" model "r17" provides ["position2d:17" "sonar:17" ] )
driver( name "stage" model "r18" provides ["position2d:18" "sonar:18" ] )
driver( name "stage" model "r19" provides ["position2d:19" "sonar:19" ] )
driver( name "stage" model "r20" provides ["position2d:20" "sonar:20" ] )
driver( name "stage" model "r21" provides ["position2d:21" "sonar:21" ] )
driver( name "stage" model "r22" provides ["position2d:22" "sonar:22" ] )
driver( name "stage" model "r23" provides ["position2d:23" "sonar:23" ] )
driver( name "stage" model "r24" provides ["position2d:24" "sonar:24" ] )
driver( name "stage" model "r25" provides ["position2d:25" "sonar:25" ] )
driver( name "stage" model "r26" provides ["position2d:26" "sonar:26" ] )
driver( name "stage" model "r27" provides ["position2d:27" "sonar:27" ] )
driver( name "stage" model "r28" provides ["position2d:28" "sonar:28" ] )
driver( name "stage" model "r29" provides ["position2d:29" "sonar:29" ] )
driver( name "stage" model "r30" provides ["position2d:30" "sonar:30" ] )
driver( name "stage" model "r31" provides ["position2d:31" "sonar:31" ] )
driver( name "stage" model "r32" provides ["position2d:32" "sonar:32" ] )
driver( name "stage" model "r33" provides ["position2d:33" "sonar:33" ] )
driver( name "stage" model "r34" provides ["position2d:34" "sonar:34" ] )
driver( name "stage" model "r35" provides ["position2d:35" "sonar:35" ] )
driver( name "stage" model "r36" provides ["position2d:36" "sonar:36" ] )
driver( name "stage" model "r37" provides ["position2d:37" "sonar:37" ] )
driver( name "stage" model "r38" provides ["position2d:38" "sonar:38" ] )
driver( name "stage" model "r39" provides ["position2d:39" "sonar:39" ] )
driver( name "stage" model "r40" provides ["position2d:40" "sonar:40" ] )
driver( name "stage" model "r41" provides ["position2d:41" "sonar:41" ] )
driver( name "stage" model "r42" provides ["position2d:42" "sonar:42" ] )
driver( name "stage" model "r43" provides ["position2d:43" "sonar:43" ] )
driver( name "stage" model "r44" provides ["position2d:44" "sonar:44" ] )
driver( name "stage" model "r45" provides ["position2d:45" "sonar:45" ] )
driver( name "stage" model "r46" provides ["position2d:46" "sonar:46" ] )
driver( name "stage" model "r47" provides ["position2d:47" "sonar:47" ] )
driver( name "stage" model "r48" provides ["position2d:48" "sonar:48" ] )
driver( name "stage" model "r49" provides ["position2d:49" "sonar:49" ] )
driver( name "stage" model "r50" provides ["position2d:50" "sonar:50" ] )
driver( name "stage" model "r51" provides ["position2d:51" "sonar:51" ] )
driver( name "stage" model "r52" provides ["position2d:52" "sonar:52" ] )
driver( name "stage" model "r53" provides ["position2d:53" "sonar:53" ] )
driver( name "stage" model "r54" provides ["position2d:54" "sonar:54" ] )
driver( name "stage" model "r55" provides ["position2d:55" "sonar:55" ] )
driver( name "stage" model "r56" provides ["position2d:56" "sonar:56" ] )
driver( name "stage" model "r57" provides ["position2d:57" "sonar:57" ] )
driver( name "stage" model "r58" provides ["position2d:58" "sonar:58" ] )
driver( name "stage" model "r59" provides ["position2d:59" "sonar:59" ] )
driver( name "stage" model "r60" provides ["position2d:60" "sonar:60" ] )
driver( name "stage" model "r61" provides ["position2d:61" "sonar:61" ] )
driver( name "stage" model "r62" provides ["position2d:62" "sonar:62" ] )
driver( name "stage" model "r63" provides ["position2d:63" "sonar:63" ] )
driver( name "stage" model "r64" provides ["position2d:64" "sonar:64" ] )
driver( name "stage" model "r65" provides ["position2d:65" "sonar:65" ] )
driver( name "stage" model "r66" provides ["position2d:66" "sonar:66" ] )
driver( name "stage" model "r67" provides ["position2d:67" "sonar:67" ] )
driver( name "stage" model "r68" provides ["position2d:68" "sonar:68" ] )
driver( name "stage" model "r69" provides ["position2d:69" "sonar:69" ] )
driver( name "stage" model "r70" provides ["position2d:70" "sonar:70" ] )
driver( name "stage" model "r71" provides ["position2d:71" "sonar:71" ] )
driver( name "stage" model "r72" provides ["position2d:72" "sonar:72" ] )
driver( name "stage" model "r73" provides ["position2d:73" "sonar:73" ] )
driver( name "stage" model "r74" provides ["position2d:74" "sonar:74" ] )
driver( name "stage" model "r75" provides ["position2d:75" "sonar:75" ] )
driver( name "stage" model "r76" provides ["position2d:76" "sonar:76" ] )
driver( name "stage" model "r77" provides ["position2d:77" "sonar:77" ] )
driver( name "stage" model "r78" provides ["position2d:78" "sonar:78" ] )
driver( name "stage" model "r79" provides ["position2d:79" "sonar:79" ] )
driver( name "stage" model "r80" provides ["position2d:80" "sonar:80" ] )
driver( name "stage" model "r81" provides ["position2d:81" "sonar:81" ] )
driver( name "stage" model "r82" provides ["position2d:82" "sonar:82" ] )
driver( name "stage" model "r83" provides ["position2d:83" "sonar:83" ] )
driver( name "stage" model "r84" provides ["position2d:84" "sonar:84" ] )
driver( name "stage" model "r85" provides ["position2d:85" "sonar:85" ] )
driver( name "stage" model "r86" provides ["position2d:86" "sonar:86" ] )
driver( name "stage" model "r87" provides ["position2d:87" "sonar:87" ] )
driver( name "stage" model "r88" provides ["position2d:88" "sonar:88" ] )
driver( name "stage" model "r89" provides ["position2d:89" "sonar:89" ] )
driver( name "stage" model "r90" provides ["position2d:90" "sonar:90" ] )
driver( name "stage" model "r91" provides ["position2d:91" "sonar:91" ] )
driver( name "stage" model "r92" provides ["position2d:92" "sonar:92" ] )
driver( name "stage" model "r93" provides ["position2d:93" "sonar:93" ] )
driver( name "stage" model "r94" provides ["position2d:94" "sonar:94" ] )
driver( name "stage" model "r95" provides ["position2d:95" "sonar:95" ] )
driver( name "stage" model "r96" provides ["position2d:96" "sonar:96" ] )
driver( name "stage" model "r97" provides ["position2d:97" "sonar:97" ] )
driver( name "stage" model "r98" provides ["position2d:98" "sonar:98" ] )
driver( name "stage" model "r99" provides ["position2d:99" "sonar:99" ] )
--- NEW FILE: pss_large.world ---
# Desc: 1 pioneer robot with laser
# CVS: $Id: pss_large.world,v 1.1 2007/09/11 01:24:44 rtv Exp $
# size of the world in meters
#size [40 18]
size [120 60]
# set the resolution of the underlying raytrace model in meters
resolution 0.02
# set the ratio of simulation and real time
interval_sim 100 # milliseconds per update step
interval_real 100 # real-time milliseconds per update step
# configure the GUI window
window
(
size [ 1436.000 856.000 ]
center [-17.596 -10.652]
scale 0.008
rangerdata 1
fill_polygons 1
)
# create some instances of our 'erratic' robot model
define swarmbot position
(
gui_nose 1
gui_outline 0
size [0.2 0.2]
# this polygon approximates the shape of a pioneer
polygons 1
polygon[0].points 8
polygon[0].point[0] [ 0.23 0.05 ]
polygon[0].point[1] [ 0.15 0.15 ]
polygon[0].point[2] [ -0.15 0.15 ]
polygon[0].point[3] [ -0.23 0.05 ]
polygon[0].point[4] [ -0.23 -0.05 ]
polygon[0].point[5] [ -0.15 -0.15 ]
polygon[0].point[6] [ 0.15 -0.15 ]
polygon[0].point[7] [ 0.23 -0.05 ]
polygon[0].fill 0
ranger(
scount 12
# define the pose of each transducer [xpos ypos heading]
spose[0] [ 0 0 -150 ]
spose[1] [ 0 0 -120 ]
spose[2] [ 0 0 -90 ]
spose[3] [ 0 0 -60 ]
spose[4] [ 0 0 -30 ]
spose[5] [ 0 0 0 ]
spose[6] [ 0 0 30 ]
spose[7] [ 0 0 60 ]
spose[8] [ 0 0 90 ]
spose[9] [ 0 0 120 ]
spose[10] [ 0 0 150 ]
spose[11] [ 0 0 180 ]
# define the field of view of each transducer [range_min range_max
view_angle]
sview [0 2.0 30]
# define the size of each transducer [xsize ysize] in meters
ssize [0.01 0.05]
)
#laser( size [0.1 0.1] samples 40 )
#fiducialfinder( fov 360 range_max 8.0 range_max_id 8.0 )
#fiducial_return 1
)
include "../map.inc"
map
(
bitmap "../bitmaps/hospital.png"
size [120 60]
)
swarmbot( name "r00" pose [-16.689 -12.823 396.507] )
swarmbot( name "r01" pose [-17.275 -8.211 -189.465] )
swarmbot( name "r02" pose [-18.186 -9.658 10.603] )
swarmbot( name "r03" pose [-16.976 -9.499 392.529] )
swarmbot( name "r04" pose [-16.340 -10.094 355.371] )
swarmbot( name "r05" pose [-18.262 -10.725 101.390] )
swarmbot( name "r06" pose [-17.253 -8.758 93.742] )
swarmbot( name "r07" pose [-18.194 -12.108 131.222] )
swarmbot( name "r08" pose [-16.367 -13.070 14.742] )
swarmbot( name "r09" pose [-17.449 -12.541 164.495] )
swarmbot( name "r10" pose [-16.854 -10.395 104.904] )
swarmbot( name "r11" pose [-17.360 -9.048 95.884] )
swarmbot( name "r12" pose [-18.221 -9.974 27.056] )
swarmbot( name "r13" pose [-17.018 -12.559 52.390] )
swarmbot( name "r14" pose [-16.396 -12.363 72.929] )
swarmbot( name "r15" pose [-17.879 -12.202 78.861] )
swarmbot( name "r16" pose [-18.168 -12.441 2.125] )
swarmbot( name "r17" pose [-16.575 -8.714 52.524] )
swarmbot( name "r18" pose [-16.694 -11.868 -8.573] )
swarmbot( name "r19" pose [-17.385 -10.559 24.453] )
swarmbot( name "r20" pose [-17.137 -9.270 -21.133] )
swarmbot( name "r21" pose [-17.915 -10.517 21.433] )
swarmbot( name "r22" pose [-17.967 -10.809 -30.765] )
swarmbot( name "r23" pose [-17.986 -11.127 161.003] )
swarmbot( name "r24" pose [-17.295 -11.960 61.576] )
swarmbot( name "r25" pose [-16.766 -11.519 16.061] )
swarmbot( name "r26" pose [-16.756 -8.903 147.188] )
swarmbot( name "r27" pose [-17.611 -11.901 41.821] )
swarmbot( name "r28" pose [-17.035 -12.848 46.680] )
swarmbot( name "r29" pose [-17.401 -12.815 32.775] )
swarmbot( name "r30" pose [-17.108 -10.625 -139.821] )
swarmbot( name "r31" pose [-16.843 -9.272 99.504] )
swarmbot( name "r32" pose [-17.535 -12.233 7.617] )
swarmbot( name "r33" pose [-16.984 -11.748 -48.059] )
swarmbot( name "r34" pose [-17.443 -9.364 -58.906] )
swarmbot( name "r35" pose [-17.770 -9.063 48.652] )
swarmbot( name "r36" pose [-16.342 -9.373 -18.437] )
swarmbot( name "r37" pose [-16.437 -11.215 28.108] )
swarmbot( name "r38" pose [-17.743 -8.434 -49.004] )
swarmbot( name "r39" pose [-17.045 -9.021 47.120] )
swarmbot( name "r40" pose [-17.502 -9.977 56.773] )
swarmbot( name "r41" pose [-17.912 -9.351 -48.646] )
swarmbot( name "r42" pose [-16.732 -11.054 46.130] )
swarmbot( name "r43" pose [-18.208 -11.688 14.819] )
swarmbot( name "r44" pose [-17.087 -8.500 48.111] )
swarmbot( name "r45" pose [-17.074 -13.135 -31.137] )
swarmbot( name "r46" pose [-17.855 -9.975 14.206] )
swarmbot( name "r47" pose [-16.698 -12.524 -74.133] )
swarmbot( name "r48" pose [-17.462 -11.105 171.925] )
swarmbot( name "r49" pose [-16.444 -11.567 24.941] )
swarmbot( name "r50" pose [-16.410 -11.960 325.793] )
swarmbot( name "r51" pose [-17.006 -12.089 69.133] )
swarmbot( name "r52" pose [-18.252 -11.076 0.000] )
swarmbot( name "r53" pose [-18.235 -11.395 -123.231] )
swarmbot( name "r54" pose [-17.406 -8.497 0.000] )
swarmbot( name "r55" pose [-17.449 -10.302 125.131] )
swarmbot( name "r56" pose [-16.801 -10.719 -39.194] )
swarmbot( name "r57" pose [-18.187 -8.888 255.674] )
swarmbot( name "r58" pose [-17.199 -10.012 113.856] )
swarmbot( name "r59" pose [-16.392 -8.961 91.531] )
swarmbot( name "r60" pose [-17.871 -12.496 -248.807] )
swarmbot( name "r61" pose [-16.450 -10.881 241.121] )
swarmbot( name "r62" pose [-17.428 -13.086 46.705] )
swarmbot( name "r63" pose [-17.738 -11.230 -50.988] )
swarmbot( name "r64" pose [-17.577 -8.776 -140.355] )
swarmbot( name "r65" pose [-16.957 -8.253 0.000] )
swarmbot( name "r66" pose [-16.347 -9.671 103.805] )
swarmbot( name "r67" pose [-17.921 -11.888 85.146] )
swarmbot( name "r68" pose [-17.461 -9.659 29.125] )
swarmbot( name "r69" pose [-16.387 -12.728 -226.468] )
swarmbot( name "r70" pose [-17.372 -11.633 0.000] )
swarmbot( name "r71" pose [-17.240 -12.274 -83.676] )
swarmbot( name "r72" pose [-17.658 -10.637 26.588] )
swarmbot( name "r73" pose [-17.711 -10.930 117.049] )
swarmbot( name "r74" pose [-16.605 -9.489 -51.499] )
swarmbot( name "r75" pose [-18.275 -10.416 36.214] )
swarmbot( name "r76" pose [-16.567 -9.156 -13.213] )
swarmbot( name "r77" pose [-16.638 -13.118 222.614] )
swarmbot( name "r78" pose [-17.129 -10.299 65.240] )
swarmbot( name "r79" pose [-17.696 -12.758 0.000] )
swarmbot( name "r80" pose [-17.917 -8.745 -101.745] )
swarmbot( name "r81" pose [-17.740 -10.232 162.306] )
swarmbot( name "r82" pose [-17.945 -11.583 93.010] )
swarmbot( name "r83" pose [-16.828 -9.737 4.473] )
swarmbot( name "r84" pose [-16.666 -8.409 -50.105] )
swarmbot( name "r85" pose [-17.182 -9.699 275.900] )
swarmbot( name "r86" pose [-17.761 -9.644 -196.957] )
swarmbot( name "r87" pose [-16.849 -8.645 -76.085] )
swarmbot( name "r88" pose [-18.164 -9.348 -158.847] )
swarmbot( name "r89" pose [-17.224 -11.300 231.280] )
swarmbot( name "r90" pose [-16.929 -11.298 -130.147] )
swarmbot( name "r91" pose [-16.726 -12.218 -42.054] )
swarmbot( name "r92" pose [-16.459 -10.582 -152.533] )
swarmbot( name "r93" pose [-16.897 -10.050 -182.657] )
swarmbot( name "r94" pose [-18.039 -10.269 289.935] )
swarmbot( name "r95" pose [-17.124 -10.910 222.443] )
swarmbot( name "r96" pose [-17.741 -13.060 -254.341] )
swarmbot( name "r97" pose [-16.569 -9.890 -77.874] )
swarmbot( name "r98" pose [-17.667 -11.566 218.413] )
swarmbot( name "r99" pose [-16.603 -10.259 1.974] )
--- NEW FILE: pss.world ---
# TODO: fiducual wall hits, >16 robots,
# Desc: 1 pioneer robot with laser
# CVS: $Id: pss.world,v 1.1 2007/09/11 01:24:44 rtv Exp $
# size of the world in meters
size [40 18]
# set the resolution of the underlying raytrace model in meters
resolution 0.02
# set the ratio of simulation and real time
interval_sim 100 # milliseconds per update step
interval_real 100 # real-time milliseconds per update step
# configure the GUI window
window
(
size [ 705.000 648.000 ]
center [-15.539 4.915]
scale 0.014
rangerdata 1
fill_polygons 1
)
define target model
(
fiducial_return 100
)
# create some instances of our 'erratic' robot model
define swarmbot position
(
gui_nose 1
gui_outline 0
size [0.2 0.2]
# this polygon approximates the shape of a pioneer
polygons 1
polygon[0].points 8
polygon[0].point[0] [ 0.23 0.05 ]
polygon[0].point[1] [ 0.15 0.15 ]
polygon[0].point[2] [ -0.15 0.15 ]
polygon[0].point[3] [ -0.23 0.05 ]
polygon[0].point[4] [ -0.23 -0.05 ]
polygon[0].point[5] [ -0.15 -0.15 ]
polygon[0].point[6] [ 0.15 -0.15 ]
polygon[0].point[7] [ 0.23 -0.05 ]
polygon[0].fill 0
ranger(
scount 12
# define the pose of each transducer [xpos ypos heading]
spose[0] [ 0 0 -150 ]
spose[1] [ 0 0 -120 ]
spose[2] [ 0 0 -90 ]
spose[3] [ 0 0 -60 ]
spose[4] [ 0 0 -30 ]
spose[5] [ 0 0 0 ]
spose[6] [ 0 0 30 ]
spose[7] [ 0 0 60 ]
spose[8] [ 0 0 90 ]
spose[9] [ 0 0 120 ]
spose[10] [ 0 0 150 ]
spose[11] [ 0 0 180 ]
# define the field of view of each transducer [range_min range_max view_angle]
sview [0 2.0 30]
# define the size of each transducer [xsize ysize] in meters
ssize [0.01 0.05]
)
#laser( size [0.1 0.1] samples 40 )
#fiducialfinder( fov 360 range_max 8.0 range_max_id 8.0 )
#fiducial_return 1
)
include "../map.inc"
map
(
bitmap "../bitmaps/hospital_section.png"
size [40 18]
)
swarmbot( name "r00" pose [-17.435 3.229 396.507] )
swarmbot( name "r01" pose [-17.653 3.573 -189.465] )
swarmbot( name "r02" pose [-17.996 3.780 10.603] )
swarmbot( name "r03" pose [-17.334 3.912 392.529] )
swarmbot( name "r04" pose [-17.781 4.090 355.371] )
swarmbot( name "r05" pose [-18.594 7.413 101.390] )
swarmbot( name "r06" pose [-18.195 7.836 93.742] )
swarmbot( name "r07" pose [-18.996 5.772 131.222] )
swarmbot( name "r08" pose [-17.846 4.879 14.742] )
swarmbot( name "r09" pose [-19.219 4.438 164.495] )
swarmbot( name "r10" pose [-18.802 6.681 104.904] )
swarmbot( name "r11" pose [-17.360 7.023 95.884] )
swarmbot( name "r12" pose [-18.143 7.366 27.056] )
swarmbot( name "r13" pose [-18.219 4.520 52.390] )
swarmbot( name "r14" pose [-18.975 4.703 72.929] )
swarmbot( name "r15" pose [-18.146 5.558 78.861] )
swarmbot( name "r16" pose [-18.636 5.797 2.125] )
swarmbot( name "r17" pose [-17.997 6.694 52.524] )
swarmbot( name "r18" pose [-18.451 4.992 -8.573] )
swarmbot( name "r19" pose [-18.905 2.997 24.453] )
swarmbot( name "r20" pose [-17.693 6.799 -21.133] )
swarmbot( name "r21" pose [-19.064 6.960 21.433] )
swarmbot( name "r22" pose [-19.164 6.235 -30.765] )
swarmbot( name "r23" pose [-18.816 2.711 161.003] )
swarmbot( name "r24" pose [-18.420 5.437 61.576] )
swarmbot( name "r25" pose [-17.688 5.332 16.061] )
swarmbot( name "r26" pose [-18.148 3.052 147.188] )
swarmbot( name "r27" pose [-19.081 5.204 41.821] )
swarmbot( name "r28" pose [-18.792 3.722 46.680] )
swarmbot( name "r29" pose [-18.068 2.724 32.775] )
swarmbot( name "r30" pose [-18.485 2.958 -139.821] )
swarmbot( name "r31" pose [-17.325 2.603 99.504] )
swarmbot( name "r32" pose [-19.330 4.788 7.617] )
swarmbot( name "r33" pose [-17.376 4.808 -48.059] )
swarmbot( name "r34" pose [-17.744 7.960 -58.906] )
swarmbot( name "r35" pose [-18.592 7.880 48.652] )
swarmbot( name "r36" pose [-17.504 5.832 -18.437] )
swarmbot( name "r37" pose [-18.750 5.240 28.108] )
swarmbot( name "r38" pose [-17.364 7.703 -49.004] )
swarmbot( name "r39" pose [-17.681 7.370 47.120] )
swarmbot( name "r40" pose [-18.966 7.511 56.773] )
swarmbot( name "r41" pose [-18.293 6.845 -48.646] )
swarmbot( name "r42" pose [-17.334 6.309 46.130] )
swarmbot( name "r43" pose [-18.569 6.174 14.819] )
swarmbot( name "r44" pose [-18.554 4.231 48.111] )
swarmbot( name "r45" pose [-19.229 3.007 -31.137] )
swarmbot( name "r46" pose [-19.157 3.844 14.206] )
swarmbot( name "r47" pose [-18.329 3.562 -74.133] )
swarmbot( name "r48" pose [-17.763 6.092 171.925] )
swarmbot( name "r49" pose [-18.061 5.258 24.941] )
swarmbot( name "r50" pose [-18.786 4.945 325.793] )
swarmbot( name "r51" pose [-18.194 4.859 69.133] )
swarmbot( name "r52" pose [-18.872 6.043 0.000] )
swarmbot( name "r53" pose [-18.075 6.302 -123.231] )
swarmbot( name "r54" pose [-18.872 3.997 0.000] )
swarmbot( name "r55" pose [-18.945 3.394 125.131] )
swarmbot( name "r56" pose [-19.508 6.248 -39.194] )
swarmbot( name "r57" pose [-18.388 7.605 255.674] )
swarmbot( name "r58" pose [-18.355 7.174 113.856] )
swarmbot( name "r59" pose [-18.277 5.993 91.531] )
swarmbot( name "r60" pose [-18.756 5.530 -248.807] )
swarmbot( name "r61" pose [-17.653 6.470 241.121] )
swarmbot( name "r62" pose [-17.724 2.502 46.705] )
swarmbot( name "r63" pose [-17.978 3.296 -50.988] )
swarmbot( name "r64" pose [-18.095 4.251 -140.355] )
swarmbot( name "r65" pose [-18.449 3.917 0.000] )
swarmbot( name "r66" pose [-17.756 2.898 103.805] )
swarmbot( name "r67" pose [-17.360 5.552 85.146] )
swarmbot( name "r68" pose [-17.461 4.350 29.125] )
swarmbot( name "r69" pose [-17.183 4.550 -226.468] )
swarmbot( name "r70" pose [-17.265 5.163 0.000] )
swarmbot( name "r71" pose [-17.632 4.652 -83.676] )
swarmbot( name "r72" pose [-18.617 3.277 26.588] )
swarmbot( name "r73" pose [-18.531 2.487 117.049] )
swarmbot( name "r74" pose [-19.164 2.630 -51.499] )
swarmbot( name "r75" pose [-19.450 2.712 36.214] )
swarmbot( name "r76" pose [-19.471 3.202 -13.213] )
swarmbot( name "r77" pose [-19.368 3.549 222.614] )
swarmbot( name "r78" pose [-18.858 6.388 65.240] )
swarmbot( name "r79" pose [-18.940 4.305 0.000] )
swarmbot( name "r80" pose [-19.409 4.182 -101.745] )
swarmbot( name "r81" pose [-19.552 4.489 162.306] )
swarmbot( name "r82" pose [-19.307 5.571 93.010] )
swarmbot( name "r83" pose [-17.898 7.593 4.473] )
swarmbot( name "r84" pose [-17.224 7.409 -50.105] )
swarmbot( name "r85" pose [-19.287 7.614 275.900] )
swarmbot( name "r86" pose [-19.225 7.940 -196.957] )
swarmbot( name "r87" pose [-18.899 8.002 -76.085] )
swarmbot( name "r88" pose [-18.385 8.185 -158.847] )
swarmbot( name "r89" pose [-17.224 5.980 231.280] )
swarmbot( name "r90" pose [-18.572 4.611 -130.147] )
swarmbot( name "r91" pose [-17.939 4.570 -42.054] )
swarmbot( name "r92" pose [-19.266 6.592 -152.533] )
swarmbot( name "r93" pose [-17.980 7.042 -182.657] )
swarmbot( name "r94" pose [-19.266 7.266 289.935] )
swarmbot( name "r95" pose [-19.430 5.857 222.443] )
swarmbot( name "r96" pose [-17.796 5.673 -254.341] )
swarmbot( name "r97" pose [-18.674 7.083 -77.874] )
swarmbot( name "r98" pose [-17.346 6.633 218.413] )
swarmbot( name "r99" pose [-18.388 6.449 1.974] )
--- NEW FILE: many.sh ---
#!/bin/bash
./single -i 0 &
./single -i 1 &
./single -i 2 &
./single -i 3 &
./single -i 4 &
--- NEW FILE: pss3d.world ---
# TODO: fiducual wall hits, >16 robots,
# Desc: 1 pioneer robot with laser
# CVS: $Id: pss3d.world,v 1.1 2007/09/11 01:24:44 rtv Exp $
# size of the world in meters
#size [40 18]
size [120 60]
# set the resolution of the underlying raytrace model in meters
resolution 0.02
# set the ratio of simulation and real time
interval_sim 100 # milliseconds per update step
interval_real 100 # real-time milliseconds per update step
# configure the GUI window
window
(
size [ 1436.000 856.000 ]
center [-17.596 -10.652]
scale 30.008
rangerdata 1
fill_polygons 1
)
define target model
(
fiducial_return 100
)
include "pioneer.inc"
# create some instances of our 'erratic' robot model
define swarmbot pioneer2dx
(
gui_nose 1
gui_outline 0
size [0.2 0.2 0.1]
ranger(
scount 12
# define the pose of each transducer [xpos ypos heading]
spose[0] [ 0 0 -150 ]
spose[1] [ 0 0 -120 ]
spose[2] [ 0 0 -90 ]
spose[3] [ 0 0 -60 ]
spose[4] [ 0 0 -30 ]
spose[5] [ 0 0 0 ]
spose[6] [ 0 0 30 ]
spose[7] [ 0 0 60 ]
spose[8] [ 0 0 90 ]
spose[9] [ 0 0 120 ]
spose[10] [ 0 0 150 ]
spose[11] [ 0 0 180 ]
# define the field of view of each transducer [range_min range_max view_angle]
sview [0 2.0 30]
# define the size of each transducer [xsize ysize] in meters
ssize [0.01 0.05]
)
#laser( size [0.1 0.1] samples 40 )
#fiducialfinder( fov 360 range_max 8.0 range_max_id 8.0 )
#fiducial_return 1
)
include "map.inc"
map
(
#bitmap "hospital_section.png"
#size [40 18]
bitmap "hospital.png"
size [120 60 0.5]
color "DarkSlateGray"
)
swarmbot( name "r00" pose [-16.689 -12.823 0 396.507] )
swarmbot( name "r01" pose [-17.275 -8.211 0 -189.465] )
swarmbot( name "r02" pose [-18.186 -9.658 0 10.603] )
swarmbot( name "r03" pose [-16.976 -9.499 0 392.529] )
swarmbot( name "r04" pose [-16.340 -10.094 0 355.371] )
swarmbot( name "r05" pose [-18.262 -10.725 0 101.390] )
swarmbot( name "r06" pose [-17.253 -8.758 0 93.742] )
swarmbot( name "r07" pose [-18.194 -12.108 0 131.222] )
swarmbot( name "r08" pose [-16.367 -13.070 0 14.742] )
swarmbot( name "r09" pose [-17.449 -12.541 0 164.495] )
swarmbot( name "r10" pose [-16.854 -10.395 0 104.904] )
swarmbot( name "r11" pose [-17.360 -9.048 0 95.884] )
swarmbot( name "r12" pose [-18.221 -9.974 0 27.056] )
swarmbot( name "r13" pose [-17.018 -12.559 0 52.390] )
swarmbot( name "r14" pose [-16.396 -12.363 0 72.929] )
swarmbot( name "r15" pose [-17.879 -12.202 0 78.861] )
swarmbot( name "r16" pose [-18.168 -12.441 0 2.125] )
swarmbot( name "r17" pose [-16.575 -8.714 0 52.524] )
swarmbot( name "r18" pose [-16.694 -11.868 0 -8.573] )
swarmbot( name "r19" pose [-17.385 -10.559 0 24.453] )
swarmbot( name "r20" pose [-17.137 -9.270 0 -21.133] )
swarmbot( name "r21" pose [-17.915 -10.517 0 21.433] )
swarmbot( name "r22" pose [-17.967 -10.809 0 -30.765] )
swarmbot( name "r23" pose [-17.986 -11.127 0 61.003] )
swarmbot( name "r24" pose [-17.295 -11.960 0 61.576] )
swarmbot( name "r25" pose [-16.766 -11.519 0 16.061] )
swarmbot( name "r26" pose [-16.756 -8.903 0 147.188] )
swarmbot( name "r27" pose [-17.611 -11.901 0 41.821] )
swarmbot( name "r28" pose [-17.035 -12.848 0 46.680] )
swarmbot( name "r29" pose [-17.401 -12.815 0 32.775] )
swarmbot( name "r30" pose [-17.108 -10.625 0 -139.821] )
swarmbot( name "r31" pose [-16.843 -9.272 0 99.504] )
swarmbot( name "r32" pose [-17.535 -12.233 0 7.617] )
swarmbot( name "r33" pose [-16.984 -11.748 0 -48.059] )
swarmbot( name "r34" pose [-17.443 -9.364 0 -58.906] )
swarmbot( name "r35" pose [-17.770 -9.063 0 48.652] )
swarmbot( name "r36" pose [-16.342 -9.373 0 -18.437] )
swarmbot( name "r37" pose [-16.437 -11.215 0 28.108] )
swarmbot( name "r38" pose [-17.743 -8.434 0 -49.004] )
swarmbot( name "r39" pose [-17.045 -9.021 0 47.120] )
swarmbot( name "r40" pose [-17.502 -9.977 0 56.773] )
swarmbot( name "r41" pose [-17.912 -9.351 0 -48.646] )
swarmbot( name "r42" pose [-16.732 -11.054 0 46.130] )
swarmbot( name "r43" pose [-18.208 -11.688 0 14.819] )
swarmbot( name "r44" pose [-17.087 -8.500 0 48.111] )
swarmbot( name "r45" pose [-17.074 -13.135 0 -31.137] )
swarmbot( name "r46" pose [-17.855 -9.975 0 14.206] )
swarmbot( name "r47" pose [-16.698 -12.524 0 -74.133] )
swarmbot( name "r48" pose [-17.462 -11.105 0 171.925] )
swarmbot( name "r49" pose [-16.444 -11.567 0 24.941] )
swarmbot( name "r50" pose [-16.410 -11.960 0 325.793] )
swarmbot( name "r51" pose [-17.006 -12.089 0 69.133] )
swarmbot( name "r52" pose [-18.252 -11.076 0 0.000] )
swarmbot( name "r53" pose [-18.235 -11.395 0 -123.231] )
swarmbot( name "r54" pose [-17.406 -8.497 0 0.000] )
swarmbot( name "r55" pose [-17.449 -10.302 0 125.131] )
swarmbot( name "r56" pose [-16.801 -10.719 0 -39.194] )
swarmbot( name "r57" pose [-18.187 -8.888 0 255.674] )
swarmbot( name "r58" pose [-17.199 -10.012 0 113.856] )
swarmbot( name "r59" pose [-16.392 -8.961 0 91.531] )
swarmbot( name "r60" pose [-17.871 -12.496 0 -248.807] )
swarmbot( name "r61" pose [-16.450 -10.881 0 241.121] )
swarmbot( name "r62" pose [-17.428 -13.086 0 46.705] )
swarmbot( name "r63" pose [-17.738 -11.230 0 -50.988] )
swarmbot( name "r64" pose [-17.577 -8.776 0 -140.355] )
swarmbot( name "r65" pose [-16.957 -8.253 0 0.000] )
swarmbot( name "r66" pose [-16.347 -9.671 0 103.805] )
swarmbot( name "r67" pose [-17.921 -11.888 0 85.146] )
swarmbot( name "r68" pose [-17.461 -9.659 0 29.125] )
swarmbot( name "r69" pose [-16.387 -12.728 0 -226.468] )
swarmbot( name "r70" pose [-17.372 -11.633 0 0.000] )
swarmbot( name "r71" pose [-17.240 -12.274 0 -83.676] )
swarmbot( name "r72" pose [-17.658 -10.637 0 26.588] )
swarmbot( name "r73" pose [-17.711 -10.930 0 117.049] )
swarmbot( name "r74" pose [-16.605 -9.489 0 -51.499] )
swarmbot( name "r75" pose [-18.275 -10.416 0 36.214] )
swarmbot( name "r76" pose [-16.567 -9.156 0 -13.213] )
swarmbot( name "r77" pose [-16.638 -13.118 0 222.614] )
swarmbot( name "r78" pose [-17.129 -10.299 0 65.240] )
swarmbot( name "r79" pose [-17.696 -12.758 0 0.000] )
swarmbot( name "r80" pose [-17.917 -8.745 0 -101.745] )
swarmbot( name "r81" pose [-17.740 -10.232 0 162.306] )
swarmbot( name "r82" pose [-17.945 -11.583 0 93.010] )
swarmbot( name "r83" pose [-16.828 -9.737 0 4.473] )
swarmbot( name "r84" pose [-16.666 -8.409 0 -50.105] )
swarmbot( name "r85" pose [-17.182 -9.699 0 275.900] )
swarmbot( name "r86" pose [-17.761 -9.644 0 -196.957] )
swarmbot( name "r87" pose [-16.849 -8.645 0 -76.085] )
swarmbot( name "r88" pose [-18.164 -9.348 0 -158.847] )
swarmbot( name "r89" pose [-17.224 -11.300 0 231.280] )
swarmbot( name "r90" pose [-16.929 -11.298 0 -130.147] )
swarmbot( name "r91" pose [-16.726 -12.218 0 -42.054] )
swarmbot( name "r92" pose [-16.459 -10.582 0 -152.533] )
swarmbot( name "r93" pose [-16.897 -10.050 0 -182.657] )
swarmbot( name "r94" pose [-18.039 -10.269 0 289.935] )
swarmbot( name "r95" pose [-17.124 -10.910 0 222.443] )
swarmbot( name "r96" pose [-17.741 -13.060 0 -254.341] )
swarmbot( name "r97" pose [-16.569 -9.890 0 -77.874] )
swarmbot( name "r98" pose [-17.667 -11.566 0 218.413] )
swarmbot( name "r99" pose [-16.603 -10.259 0 1.974] )
--- NEW FILE: multiple.cc ---
#include <libplayerc++/playerc++.h>
#include <iostream>
#include <assert.h>
// For argument parsing
#include "args.h"
#define VSPEED 0.4 // meters per second
#define WGAIN 1.0 // turn speed gain
#define SAFE_DIST 0.3 // meters
#define SAFE_ANGLE 0.4 // radians
int main(int argc, char **argv)
{
// Parse command line options
parse_args(argc,argv);
// We throw exceptions on creation if we fail
try
{
using namespace PlayerCc;
using namespace std;
// Create a player client object, using the variables assigned by the
// call to parse_args()
PlayerClient robot (gHostname, gPort);
robot.SetDataMode( PLAYER_DATAMODE_PULL );
robot.SetReplaceRule( true );
Position2dProxy** ppp = new Position2dProxy*[gPop];
SonarProxy** spp = new SonarProxy*[gPop];
Graphics2dProxy** gpp = new Graphics2dProxy*[gPop];
for( uint i=0; i<gPop; i++ )
{
ppp[i] = new Position2dProxy( &robot , i );
assert( ppp[i] );
spp[i] = new SonarProxy( &robot, i );
assert( spp[i] );
gpp[i] = new Graphics2dProxy( &robot, i );
assert( gpp[i] );
spp[i]->RequestGeom(); // query the server for sonar
// positions
}
while(1)
{
// blocks until new data comes from Player
robot.Read();
for( uint i=0; i<gPop; i++ )
if( spp[i]->IsFresh() ) // only update if this proxy has some new data
{
spp[i]->NotFresh(); // mark the data as old
// compute the vector sum of the sonar ranges
double dx=0, dy=0;
int num_ranges = spp[i]->GetCount();
for( int s=0; s<num_ranges; s++ )
{
player_pose3d_t spose = spp[i]->GetPose(s);
double srange = spp[i]->GetScan(s);
dx += srange * cos( spose.pyaw );
dy += srange * sin( spose.pyaw );
}
double resultant_angle = atan2( dy, dx );
//double resultant_magnitude = hypot( dy, dx );
double forward_speed = 0.0;
double side_speed = 0.0;
double turn_speed = WGAIN * resultant_angle;
int forward = num_ranges/2 -1 ;
// if the front is clear, drive forwards
if( (spp[i]->GetScan(forward-1) > SAFE_DIST) &&
(spp[i]->GetScan(forward) > SAFE_DIST) &&
(spp[i]->GetScan(forward+1) > SAFE_DIST) &&
(fabs( resultant_angle ) < SAFE_ANGLE) )
{
forward_speed = VSPEED;
}
// send a command to the robot
ppp[i]->SetSpeed( forward_speed, side_speed, turn_speed );
// draw the resultant vector on the robot to show what it
// is thinking
if( forward_speed > 0 )
gpp[i]->Color( 0,255,0,0 );
else
gpp[i]->Color( 0,255,255,0 );
player_point_2d_t pts[2];
pts[0].px = 0;
pts[0].py = 0;
pts[1].px = dx;
pts[1].py = dy;
gpp[i]->Clear();
gpp[i]->DrawPolyline( pts, 2 );
}
}
}
catch (PlayerCc::PlayerError e)
{
std::cerr << e << std::endl;
return -1;
}
}
--- NEW FILE: single.cc ---
#include <libplayerc++/playerc++.h>
#include <iostream>
#include <assert.h>
// For argument parsing
#include "args.h"
#define POP 100 // population size
#define VSPEED 0.4 // meters per second
#define WGAIN 1.0 // turn speed gain
#define SAFE_DIST 0.3 // meters
#define SAFE_ANGLE 0.4 // radians
int main(int argc, char **argv)
{
// Parse command line options
parse_args(argc,argv);
// We throw exceptions on creation if we fail
try
{
using namespace PlayerCc;
using namespace std;
// Create a player client object, using the variables assigned by the
// call to parse_args()
PlayerClient robot (gHostname, gPort);
robot.SetDataMode( PLAYER_DATAMODE_PULL );
robot.SetReplaceRule( true );
Position2dProxy pp( &robot, gIndex );
SonarProxy sp( &robot, gIndex );
Graphics2dProxy gp( &robot, gIndex );
sp.RequestGeom(); // query the server for sonar positions
while(1)
{
// blocks until new data comes from Player
robot.Read();
for( int i=0; i<POP; i++ )
{
// compute the vector sum of the sonar ranges
double dx=0, dy=0;
int num_ranges = sp.GetCount();
for( int s=0; s<num_ranges; s++ )
{
player_pose3d_t spose = sp.GetPose(s);
double srange = sp.GetScan(s);
dx += srange * cos( spose.pyaw );
dy += srange * sin( spose.pyaw );
}
// compute the direction of the resultant vector
double resultant_angle = atan2( dy, dx );
//double resultant_magnitude = hypot( dy, dx );
double forward_speed = 0.0;
double side_speed = 0.0;
double turn_speed = WGAIN * resultant_angle;
// find the index of the forward-pointing sensor
int forward = num_ranges/2 -1 ;
// if the front is clear, drive forwards
if( (sp.GetScan(forward-1) > SAFE_DIST) &&
(sp.GetScan(forward) > SAFE_DIST) &&
(sp.GetScan(forward+1) > SAFE_DIST) &&
(fabs( resultant_angle ) < SAFE_ANGLE) )
{
forward_speed = VSPEED;
}
// send a command to the robot's position device
pp.SetSpeed( forward_speed, side_speed, turn_speed );
// draw the resultant vector on the robot to show what it
// is thinking
if( forward_speed > 0 )
gp.Color( 0,255,0,0 );
else
gp.Color( 0,255,255,0 );
player_point_2d_t pts[2];
pts[0].px = 0;
pts[0].py = 0;
pts[1].px = dx;
pts[1].py = dy;
gp.Clear();
gp.DrawPolyline( pts, 2 );
}
}
}
catch (PlayerCc::PlayerError e)
{
std::cerr << e << std::endl;
return -1;
}
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit