From: Franklin D. <fra...@gm...> - 2007-08-27 16:28:40
|
I am trying to get a standalone player/stage to run using the source code below. However, when I run it I get the message: [Loading BlobfinderExample/simple.world][Include pioneer.inc][Include map.inc] And then the correct world GUI pops up, but any subsequent connection requests I make via my clients get a "Connection Refused". Do I need to add more code into my simple main example to be able to connect? (I don't seem to get a "Connecting to port 6667", loading devices etc. that I normally get when I run player/stage.) Thanks for the help, I am sure player/stage is correctly installed. Thanks, Franklin #include "stage.h" int main( int argc, char* argv[] ) { stg_init( argc, argv ); stg_world_t* world = stg_world_create_from_file( argv[1] ); while( (stg_world_update( world,TRUE )==0) ) {} stg_world_destroy( world ); return 0; } |
From: Reed H. <re...@mo...> - 2007-08-27 17:15:42
|
If you want to connect to Stage with Player client programs, then you must run the Player server with its stage plugin (libstageplugin) loaded. It is the Player server that provides for clients connecting over TCP, not the standalone libstage library. The stage plugin to the player server (libstageplugin) is the connector between the Player server and libstage. libstage by itself contains nothing about connecting to it over a network or other IPC; it is only accessed via local function calls. Reed P.S. I have some patches that expand libstage 2.0.0's API if this is something that anyone is interested in doing, check the patch tracker or email me. Franklin Dorbon wrote: > I am trying to get a standalone player/stage to run using the source code below. However, when I run it I get the message: > > [Loading BlobfinderExample/simple.world][Include pioneer.inc][Include > map.inc] > > And then the correct world GUI pops up, but any subsequent connection > requests I make via my clients get a "Connection Refused". Do I need to > add more code into my simple main example to be able to connect? (I > don't seem to get a "Connecting to port 6667", loading devices etc. that > I normally get when I run player/stage.) > > Thanks for the help, I am sure player/stage is correctly installed. > > Thanks, > Franklin > > > > > > #include "stage.h" > > int main( int argc, char* argv[] ) > { > stg_init( argc, argv ); > > stg_world_t* world = stg_world_create_from_file( argv[1] ); > > while( (stg_world_update( world,TRUE )==0) ) > > {} > > stg_world_destroy( world ); > > return 0; > } > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users |
From: Franklin D. <fra...@gm...> - 2007-08-27 17:27:05
|
So suppose I wanted to run some Machine Learning experiments using player/stage, this is how I understand my procedure: 1) Start Player normally. 2) Run my libstage code below to connect to the world 3) Connect my player clients 4) Evaluate the algorithm, learn, etc. 5) Disconnect player clients 6) Goto 2 Suppose I want to restart the experiment from my libstage code, do I need to restart Player? Should I try to add some libstageplugin code into my main execution loop (below) to manage the connect/re-connect? I really appreciate any further help. Thanks, Franklin On 8/27/07, Reed Hedges <re...@mo...> wrote: > > > If you want to connect to Stage with Player client programs, then you must > run > the Player server with its stage plugin (libstageplugin) loaded. It is > the > Player server that provides for clients connecting over TCP, not the > standalone > libstage library. The stage plugin to the player server (libstageplugin) > is the > connector between the Player server and libstage. libstage by itself > contains > nothing about connecting to it over a network or other IPC; it is only > accessed > via local function calls. > > Reed > > > P.S. I have some patches that expand libstage 2.0.0's API if this is > something > that anyone is interested in doing, check the patch tracker or email me. > > > > Franklin Dorbon wrote: > > I am trying to get a standalone player/stage to run using the source > code below. However, when I run it I get the message: > > > > [Loading BlobfinderExample/simple.world][Include pioneer.inc][Include > > map.inc] > > > > And then the correct world GUI pops up, but any subsequent connection > > requests I make via my clients get a "Connection Refused". Do I need to > > add more code into my simple main example to be able to connect? (I > > don't seem to get a "Connecting to port 6667", loading devices etc. that > > I normally get when I run player/stage.) > > > > Thanks for the help, I am sure player/stage is correctly installed. > > > > Thanks, > > Franklin > > > > > > > > > > > > #include "stage.h" > > > > int main( int argc, char* argv[] ) > > { > > stg_init( argc, argv ); > > > > stg_world_t* world = stg_world_create_from_file( argv[1] ); > > > > while( (stg_world_update( world,TRUE )==0) ) > > > > {} > > > > stg_world_destroy( world ); > > > > return 0; > > } > > > > > > > > ------------------------------------------------------------------------ > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > |
From: Reed H. <re...@mo...> - 2007-08-27 18:07:32
|
If I read correctly, I think you might be misunderstanding how Player works. Have you read the following documents yet? Overviews: http://playerstage.sourceforge.net/wiki/Player http://playerstage.sourceforge.net/wiki/Stage http://playerstage.sourceforge.net/doc/Player-2.0.0/player/start.html Manual: http://playerstage.sourceforge.net/doc/Player-2.0.0/player/ Franklin Dorbon wrote: > So suppose I wanted to run some Machine Learning experiments using > player/stage, this is how I understand my procedure: > > 1) Start Player normally. > 2) Run my libstage code below to connect to the world > 3) Connect my player clients > 4) Evaluate the algorithm, learn, etc. > 5) Disconnect player clients > 6) Goto 2 > > Suppose I want to restart the experiment from my libstage code, do I > need to restart Player? > > Should I try to add some libstageplugin code into my main execution loop > (below) to manage the connect/re-connect? > > I really appreciate any further help. > > Thanks, > Franklin > > > > On 8/27/07, *Reed Hedges* <re...@mo... > <mailto:re...@mo...>> wrote: > > > If you want to connect to Stage with Player client programs, then > you must run > the Player server with its stage plugin (libstageplugin) loaded. It > is the > Player server that provides for clients connecting over TCP, not the > standalone > libstage library. The stage plugin to the player server > (libstageplugin) is the > connector between the Player server and libstage. libstage by > itself contains > nothing about connecting to it over a network or other IPC; it is > only accessed > via local function calls. > > Reed > > > P.S . I have some patches that expand libstage 2.0.0's API if this > is something > that anyone is interested in doing, check the patch tracker or email me. > > > > Franklin Dorbon wrote: > > I am trying to get a standalone player/stage to run using the > source code below. However, when I run it I get the message: > > > > [Loading BlobfinderExample/simple.world][Include > pioneer.inc][Include > > map.inc] > > > > And then the correct world GUI pops up, but any subsequent connection > > requests I make via my clients get a "Connection Refused". Do I > need to > > add more code into my simple main example to be able to connect? (I > > don't seem to get a "Connecting to port 6667", loading devices > etc. that > > I normally get when I run player/stage.) > > > > Thanks for the help, I am sure player/stage is correctly installed. > > > > Thanks, > > Franklin > > > > > > > > > > > > #include "stage.h" > > > > int main( int argc, char* argv[] ) > > { > > stg_init( argc, argv ); > > > > stg_world_t* world = stg_world_create_from_file( argv[1] ); > > > > while( (stg_world_update( world,TRUE )==0) ) > > > > {} > > > > stg_world_destroy( world ); > > > > return 0; > > } > > > > > > > > > ------------------------------------------------------------------------ > > > > > ------------------------------------------------------------------------- > > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a > browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > <mailto:Pla...@li...> > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > <mailto:Pla...@li...> > https://lists.sourceforge.net/lists/listinfo/playerstage-users > <https://lists.sourceforge.net/lists/listinfo/playerstage-users> > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users |
From: Franklin D. <fra...@gm...> - 2007-08-27 18:22:39
|
Reed, Greatly appreciate your help. I guess what I don't understand is, how one would be able to use player/stage as a simulator embedded in C code. From what you say, I don't see what using libstage actually does. I really just want to be able to run a simulation within existing code with the ability to stop/start/restart the simulation over and over again (optimizing a learning parameter for example). I really looked hard, but I found only very very minimal description on what exactly libstage as a standalone means/examples etc. Thanks, Franklin On 8/27/07, Reed Hedges <re...@mo...> wrote: > > > If I read correctly, I think you might be misunderstanding how Player > works. > Have you read the following documents yet? > > Overviews: > http://playerstage.sourceforge.net/wiki/Player > http://playerstage.sourceforge.net/wiki/Stage > http://playerstage.sourceforge.net/doc/Player-2.0.0/player/start.html > > Manual: > http://playerstage.sourceforge.net/doc/Player-2.0.0/player/ > > > > Franklin Dorbon wrote: > > So suppose I wanted to run some Machine Learning experiments using > > player/stage, this is how I understand my procedure: > > > > 1) Start Player normally. > > 2) Run my libstage code below to connect to the world > > 3) Connect my player clients > > 4) Evaluate the algorithm, learn, etc. > > 5) Disconnect player clients > > 6) Goto 2 > > > > Suppose I want to restart the experiment from my libstage code, do I > > need to restart Player? > > > > Should I try to add some libstageplugin code into my main execution loop > > (below) to manage the connect/re-connect? > > > > I really appreciate any further help. > > > > Thanks, > > Franklin > > > > > > > > On 8/27/07, *Reed Hedges* <re...@mo... > > <mailto:re...@mo...>> wrote: > > > > > > If you want to connect to Stage with Player client programs, then > > you must run > > the Player server with its stage plugin (libstageplugin) loaded. It > > is the > > Player server that provides for clients connecting over TCP, not the > > standalone > > libstage library. The stage plugin to the player server > > (libstageplugin) is the > > connector between the Player server and libstage. libstage by > > itself contains > > nothing about connecting to it over a network or other IPC; it is > > only accessed > > via local function calls. > > > > Reed > > > > > > P.S . I have some patches that expand libstage 2.0.0's API if this > > is something > > that anyone is interested in doing, check the patch tracker or email > me. > > > > > > > > Franklin Dorbon wrote: > > > I am trying to get a standalone player/stage to run using the > > source code below. However, when I run it I get the message: > > > > > > [Loading BlobfinderExample/simple.world][Include > > pioneer.inc][Include > > > map.inc] > > > > > > And then the correct world GUI pops up, but any subsequent > connection > > > requests I make via my clients get a "Connection Refused". Do I > > need to > > > add more code into my simple main example to be able to connect? > (I > > > don't seem to get a "Connecting to port 6667", loading devices > > etc. that > > > I normally get when I run player/stage.) > > > > > > Thanks for the help, I am sure player/stage is correctly > installed. > > > > > > Thanks, > > > Franklin > > > > > > > > > > > > > > > > > > #include "stage.h" > > > > > > int main( int argc, char* argv[] ) > > > { > > > stg_init( argc, argv ); > > > > > > stg_world_t* world = stg_world_create_from_file( argv[1] ); > > > > > > while( (stg_world_update( world,TRUE )==0) ) > > > > > > {} > > > > > > stg_world_destroy( world ); > > > > > > return 0; > > > } > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > ------------------------------------------------------------------------- > > > > > This SF.net email is sponsored by: Splunk Inc. > > > Still grepping through log files to find problems? Stop. > > > Now Search log events and configuration files using AJAX and a > > browser. > > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > _______________________________________________ > > > Playerstage-users mailing list > > > Pla...@li... > > <mailto:Pla...@li...> > > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a > browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > > <mailto:Pla...@li...> > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > <https://lists.sourceforge.net/lists/listinfo/playerstage-users> > > > > > > > > ------------------------------------------------------------------------ > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > |
From: Reed H. <re...@mo...> - 2007-08-27 20:23:01
|
Franklin Dorbon wrote: > I guess what I don't understand is, how one would be able to use > player/stage as a simulator embedded in C code. From what you say, I > don't see what using libstage actually does. I really just want to be > able to run a simulation within existing code with the ability to > stop/start/restart the simulation over and over again (optimizing a > learning parameter for example). > > I really looked hard, but I found only very very minimal description on > what exactly libstage as a standalone means/examples etc. > I see. If you want to use libstage directly, then you wouldn't use Player at all. libstage manages the simulation state and the GUI. Each time you call stg_world_update(), each of the models that make up the simulated world are updated depending on things like their current velocities. libstage provides some access through its public API to the world and these models. I have mainly used the previous version of libstage (I'm not a main author by the way, just one of the few who use libstage directly); the current version has had changes to its API since then so I don't know that much about using it, but I'm pretty familiar with how libstage works in general. libstage is a bit lacking as a general use library, including documentation, since it's mainly been used only by the Player plugin. In using libstage I made various modifications and additions to its API, I have patches to the older version (2.0.0a), I haven't started using 2.0.1 yet. I'd be interested in your experiences using it so we can work on improving it in the future. Here is the libstage 2.0.1 developer documentation: http://playerstage.sourceforge.net/doc/Stage-2.0.1/group__libstage.html Or you can generate it yourself locally with doxygen. You can also look at at the Player plugin as an example, it's source files start with the prefix p_ in the Stage source code. E.g. p_laser.cc. To see how that code is using libstage, look for the libstage functions and structures it is using, these functions and structure types all start with the stg_ prefix. To access a model, obtain a stg_model_t* from the world object using stg_world_model_name_lookup(). (The name is as given in the world file). All of the objects declared in the world file are models in the world, including obstacles/maps, robots, the robots' devices, etc. Use the stg_model_subscribe() and stg_model_unsubscribe() functions to indicate that your program is using the models; a model is not updated if its subscription count is 0. See the Worlds "module" in the documentation for general world functions, or the Models "module" for model functions. A model like "position" also has a "command" struct, which can make it do stuff each update loop, like move. Set a command with the stg_model_set_cmd() function giving a pointer to the appropriate command struct for that model. For example, stg_position_cmd_t for a position model. Sometimes extra properties are associated with models by name, (named properties). I don't know if there's a list of any of those things yet. I think you should be able to destroy and rececreate the world for each run of your experiment. If you encounter any bugs or memory leaks doing that let us know, since this is not how libstage has typically been used in the past. Alternatively, you can just reset the state of your robots by moving them back to their starting locations and reseting odometric pose perhaps or whatever else needs to be reset. You can pause/unpause the world (i.e. the clocks and updates) with the world start/stop functions, I think. Reed |
From: Franklin D. <fra...@gm...> - 2007-08-29 15:57:17
|
Thanks! I really understand this quite a lot better now, is it possible to get the wavefront planning to work with libstage as a standalone? It seems that it is not a "model", but is it possible with your "API" extensions? Again, I really really appreciate all the help so far. Thanks, Franklin On 8/27/07, Reed Hedges <re...@mo...> wrote: > > Franklin Dorbon wrote: > > I guess what I don't understand is, how one would be able to use > > player/stage as a simulator embedded in C code. From what you say, I > > don't see what using libstage actually does. I really just want to be > > able to run a simulation within existing code with the ability to > > stop/start/restart the simulation over and over again (optimizing a > > learning parameter for example). > > > > I really looked hard, but I found only very very minimal description on > > what exactly libstage as a standalone means/examples etc. > > > > I see. If you want to use libstage directly, then you wouldn't use Player > at > all. libstage manages the simulation state and the GUI. Each time you > call > stg_world_update(), each of the models that make up the simulated world > are > updated depending on things like their current velocities. libstage > provides > some access through its public API to the world and these models. > > I have mainly used the previous version of libstage (I'm not a main author > by > the way, just one of the few who use libstage directly); the current > version has > had changes to its API since then so I don't know that much about using > it, but > I'm pretty familiar with how libstage works in general. > > libstage is a bit lacking as a general use library, including > documentation, > since it's mainly been used only by the Player plugin. In using libstage > I > made various modifications and additions to its API, I have patches to the > older > version (2.0.0a), I haven't started using 2.0.1 yet. I'd be interested > in your > experiences using it so we can work on improving it in the future. > > > Here is the libstage 2.0.1 developer documentation: > > http://playerstage.sourceforge.net/doc/Stage-2.0.1/group__libstage.html > > > Or you can generate it yourself locally with doxygen. > > > You can also look at at the Player plugin as an example, it's source files > start > with the prefix p_ in the Stage source code. E.g. p_laser.cc. To see how > that > code is using libstage, look for the libstage functions and structures it > is > using, these functions and structure types all start with the stg_ prefix. > > To access a model, obtain a stg_model_t* from the world object using > stg_world_model_name_lookup(). (The name is as given in the world > file). All of > the objects declared in the world file are models in the world, including > obstacles/maps, robots, the robots' devices, etc. > > Use the stg_model_subscribe() and stg_model_unsubscribe() functions to > indicate > that your program is using the models; a model is not updated if its > subscription count is 0. See the Worlds "module" in the documentation > for > general world functions, or the Models "module" for model functions. > > A model like "position" also has a "command" struct, which can make it do > stuff > each update loop, like move. Set a command with the stg_model_set_cmd() > function giving a pointer to the appropriate command struct for that > model. For > example, stg_position_cmd_t for a position model. Sometimes extra > properties > are associated with models by name, (named properties). I don't know if > there's > a list of any of those things yet. > > I think you should be able to destroy and rececreate the world for each > run of > your experiment. If you encounter any bugs or memory leaks doing that let > us > know, since this is not how libstage has typically been used in the past. > Alternatively, you can just reset the state of your robots by moving them > back > to their starting locations and reseting odometric pose perhaps or > whatever else > needs to be reset. You can pause/unpause the world (i.e. the clocks and > updates) with the world start/stop functions, I think. > > Reed > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > |
From: Reed H. <re...@mo...> - 2007-08-29 16:15:28
|
Franklin Dorbon wrote: > Thanks! > I really understand this quite a lot better now, is it possible to get > the wavefront planning to work with libstage as a standalone? It seems > that it is not a "model", but is it possible with your "API" extensions? > Not really, it's implemented as a player client program. I've never used it though. This is so it can run either on Stage or a real robot. (Which is the purpose of running stage by running the Player server with its stage plugin.) You'd have co extract code from the player client and integrate it into your simulator program. Reed |
From: Richard V. <rtv...@gm...> - 2007-08-30 10:31:47
|
Reed is correct that libstage is not documented. This is because the API is not yet stable and I am not encouraging people to use it yet. However, there is a complete example of using libstage stand-alone in the distribution, in <stage source dir>/src/stest.c To build it, just cd to the src directory and type make stest Richard/ On 8/29/07, Franklin Dorbon <fra...@gm...> wrote: > Thanks! > I really understand this quite a lot better now, is it possible to get the > wavefront planning to work with libstage as a standalone? It seems that it > is not a "model", but is it possible with your "API" extensions? > > Again, I really really appreciate all the help so far. > > Thanks, > Franklin > > On 8/27/07, Reed Hedges < re...@mo...> wrote: > > Franklin Dorbon wrote: > > > I guess what I don't understand is, how one would be able to use > > > player/stage as a simulator embedded in C code. From what you say, I > > > don't see what using libstage actually does. I really just want to be > > > able to run a simulation within existing code with the ability to > > > stop/start/restart the simulation over and over again (optimizing a > > > learning parameter for example). > > > > > > I really looked hard, but I found only very very minimal description on > > > what exactly libstage as a standalone means/examples etc. > > > > > > > I see. If you want to use libstage directly, then you wouldn't use Player > at > > all. libstage manages the simulation state and the GUI. Each time you > call > > stg_world_update(), each of the models that make up the simulated world > are > > updated depending on things like their current velocities. libstage > provides > > some access through its public API to the world and these models. > > > > I have mainly used the previous version of libstage (I'm not a main author > by > > the way, just one of the few who use libstage directly); the current > version has > > had changes to its API since then so I don't know that much about using > it, but > > I'm pretty familiar with how libstage works in general. > > > > libstage is a bit lacking as a general use library, including > documentation, > > since it's mainly been used only by the Player plugin. In using libstage > I > > made various modifications and additions to its API, I have patches to the > older > > version (2.0.0a), I haven't started using 2.0.1 yet. I'd be interested > in your > > experiences using it so we can work on improving it in the future. > > > > > > Here is the libstage 2.0.1 developer documentation: > > > > > http://playerstage.sourceforge.net/doc/Stage-2.0.1/group__libstage.html > > > > > > Or you can generate it yourself locally with doxygen. > > > > > > You can also look at at the Player plugin as an example, it's source files > start > > with the prefix p_ in the Stage source code. E.g. p_laser.cc. To see how > that > > code is using libstage, look for the libstage functions and structures it > is > > using, these functions and structure types all start with the stg_ prefix. > > > > To access a model, obtain a stg_model_t* from the world object using > > stg_world_model_name_lookup(). (The name is as given in the world file). > All of > > the objects declared in the world file are models in the world, including > > obstacles/maps, robots, the robots' devices, etc. > > > > Use the stg_model_subscribe() and stg_model_unsubscribe() functions to > indicate > > that your program is using the models; a model is not updated if its > > subscription count is 0. See the Worlds "module" in the documentation > for > > general world functions, or the Models "module" for model functions. > > > > A model like "position" also has a "command" struct, which can make it do > stuff > > each update loop, like move. Set a command with the stg_model_set_cmd() > > function giving a pointer to the appropriate command struct for that > model. For > > example, stg_position_cmd_t for a position model. Sometimes extra > properties > > are associated with models by name, (named properties). I don't know if > there's > > a list of any of those things yet. > > > > I think you should be able to destroy and rececreate the world for each > run of > > your experiment. If you encounter any bugs or memory leaks doing that let > us > > know, since this is not how libstage has typically been used in the past. > > Alternatively, you can just reset the state of your robots by moving them > back > > to their starting locations and reseting odometric pose perhaps or > whatever else > > needs to be reset. You can pause/unpause the world (i.e. the clocks and > > updates) with the world start/stop functions, I think. > > > > Reed > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > Playerstage-users mailing list > > Pla...@li... > > > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Playerstage-users mailing list > Pla...@li... > https://lists.sourceforge.net/lists/listinfo/playerstage-users > > |