This is an experimental pre-release in preparation for Stage-2.0.0. There are many changes under the hood, which will lead to new features in the near future. However, this release is mainly aimed at getting the same functionality as Stage-1.6, but without the Player/Stage-1.6 timing issues. Player/Stage should now scale to large robot populations, running at less than real-time without causing timing problems with Player client robot controllers.
Player-1.6.5 or later is required. This pre-release does NOT work with Player CVS HEAD, which has a new network protocol. The main antcipated difference between this pre-release and Stage-2.0.0 will be a move to the new Player protocol. Stage- and Player-2.0.0 are planned for near-simultaneous release this fall.
Please report bugs to the tracker.
Let us know what you do with Stage.
Richard Vaughan (rtv) 2005.8.11
This is a bug-fix release that replaces 1.6.0.
- Fixes several GUI bugs, including the [View/Fill Polygons] menu item.
- Some code clean-up and thread-safety fixes
This release of Stage is the first after a major rewrite. There are bound to be bugs and teething troubles, but the Autonomy Lab has been using this code for serious work for a few months now and we think it's useful and usable.
Significant changes visible to the user
Stage is now a Player plugin, instead of an executable. The key benefit of this is that all Player drivers are now available for use directly with Stage, including sophisticated drivers like AMCL, without needing passthrough drivers.
Stage depends on Player 1.6 or newer.
Worldfile syntax has a changed, so you need to edit your existing worlds to get them to work. Look at the example worlds in
(stage src)/worldsto get the idea.
Any object can now have its shape specified by a bitmap file
Several bitmap file formats are supported, using a third-party library. Load maps and robot bodies from JPG, PNG, etc. No more PNM troubles.
Worlds can now be very large (thousands of meters square).
Several models are missing from this release - notably the gripper and puck. These will be available soon. Meanwhile, enjoy the full power of Player with the basic laser, sonar, position, fiducial and blobfinder models.
Stage no longer depends on libRTK.
Some models from previous versions may not yet be available in this release (e.g. gripper & puck), but we're working on them. Let us know which ones you need.
Significant changes under the hood
The Stage simulation engine is now a library rather than an application. The library can be used to write custom robot simulations. This is very useful if you need to do synchronous control of robots (e.g for perfectly repeatable experiments), or dynamically create and destroy robots or other objects. You can't (yet) do this though Player. Refer to the libstage reference manual for the API and developer docs..
Stage is now mostly written in C. A simple object-oriented system allows one level of inheritance for writing polymorphic model code.
The underlying occupancy grid model has changed from a simple fixed-size array to a sparse array of (almost) unlimited size (implemented with a hash table). To compensate for the performance hit of raytracing in the hash table, a three-level multiple-resolution approach is used. Raytracing is now usually much faster than in Stage-1.3. To get an idea how this works, select the View/Debug/Raytrace menu item while a laser or ranger is producing data.
Most home-rolled data structures have been replaced by glib versions.
Generated on Thu Aug 11 13:08:10 2005 for Stage by 1.4.0