Richard Vaughan (rtv) vaughan@sfu.ca - 2010.12.2
Major new release since worldfile syntax and API have both changed due to a new unified ranger model. Laser model is now deprecated in favour of the ranger. This follows a similar change in Player 3, where laser interface support was deprecated but still in place due to lack of Stage support. This release fixes that.
Also includes many bugfixes, a much improved build system and some performance enhancements and documentation improvements.
Richard Vaughan (rtv) vaughan@sfu.ca - 2010.11.25
Bugfix, performance and cleanup release. This is the fastest Stage ever for most use cases.
Externally visible changes
Richard Vaughan (rtv) vaughan@sfu.ca - 2009.10.28
Bugfix release, contains mainly bugfixes but some performance tweaks.
Richard Vaughan (rtv) vaughan@sfu.ca - 2009.10.13
This minor release fixes many bugs, has some performance improvements and some significant internal and API changes, including:
Richard Vaughan (rtv) vaughan@sfu.ca - 2009.9.12
This minor release includes some major improvements, including:
Richard Vaughan (rtv) vaughan@sfu.ca - 2009.7.22
This version incorporates a number of fixes made since the previous major release:
Stage 3.0.0 consists of these components:
This is a a major new release of Stage. The main new features are:
libstageplugin still needs some work - currently it only supports position2d, laser and sonar interfaces It also uses too much CPU. Player/Stage users may choose to wait for libstageplugin to improve before trying Stage-3.0.
Note that your Stage-2.0 world files will probably need to be updated to work with Stage-3.0. The main difference world file syntax is that poses and velocities are now specied as [x y z theta] instead of the old [x y theta]. Sizes are now specifed as [x y z] instead of [x y].
Some useful parts of Stage 2.x have not yet been ported to 3.0, including
This is the first release of a lot of new code. It has been used in my lab for a while now, but there are bound to be bugs and quirks. Please use the bug tracker and feature request system on Sourceforge to help us fix and improve Stage. As always, your patches are very welcome.
Richard Vaughan (rtv) vaughan@sfu.ca - 2008.7.12
This is mainly a bugfix and performance-enhancement release. This release requires Player-2.0.1, released simultaneously.
The only major new feature is the addition of support for Player's speech interface: speech bubbles show the text being "spoken" by each robot. The text is rendered using Pango, so non-Roman alphabets are supported.
Richard Vaughan (rtv) vaughan@sfu.ca 2006.3.24
This is a major new release of Stage, and is intended to replace all previous versions. It requires Player-2.0.0 or later.
Please report bugs to the tracker and let us know what you do with Stage.
Richard Vaughan (rtv) vaughan@sfu.ca 2006.2.26
Significant user-level changes include:
Stage is now implemented as the C library libstage. Using libstage, your programs can include a sophisticated robot simulator with a few lines of code. The Player plugin libstageplugin is a wrapper for libstage that provides simulation services to Player. Player with libstageplugin is the Player/Stage system.
Player clients can draw directly in the Stage window using the graphics2d interface. libstage programs can use the internal user graphics API.
Configurable odometry error in position model
Gripper model that can pick up anything. Any object can be made grippable/pushable by setting the the gripper_return property.
Pan-tilt-zoom (PTZ) model.
More and improved visualizations, including models leaving trails over time
Any object can now have its shape specified by a bitmap file (JPG, PNG, etc.).
Worldfile syntax has changed slightly, so you may need to edit your existing worlds to get them to work. Look at the example worlds in (stage src)/worlds to get the idea.
Worlds can be very large (thousands of meters square).
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 (http://www.cs.sfu.ca/research/groups/autonomy) has been using this code for serious work for a few months now and we think it's useful and usable.
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>="">/worlds to 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.
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 (http://playerstage.sf.net/doc/stage_reference) 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.