
MobileSim 0.5.0
April  6, 2009
------------------------------

 * Fixed occasional crash (in obtaining laser data)
 * Fixed hang when restarting after a crash in noninteractive mode
 * --no-gui now implies --noninteractive
 * Added temperature test/debugging commands (with temperature info in SIP)

MobileSim 0.4.5
October 3, 2008
------------------------------

Important changes and fixes:
 * Fixed minor error in positionl accuracy of map points wrt. coordinates and
   lines
 * Improved rendering performance of map points
 * Fixed error in deceleration causing overshoot of desired speed (especially when loaded
   or using sparse update intervals) and then it would never achieve the desired
   speed.
 * Removed object "height", a little-used feature. Will be back in a future
   version in a much better and full-featured way. (Can be re-enabled by
   editing laser model source code in stage)
 * Does not crash on socket errors causing SIGPIPE signal.
 * Clears stall state when no longer collided with anything, even if robot is
   not trying to move.
 * Fixed memory leaks, especially over many connections and disconnections when
   using the robot factory (thread memory leaks, also minor but frequent
   timer leak that was indroduced in limited 0.4.5 release and prereleases)
 * Robot is only considered "stalled" when it has translational velocity and
   has hit something. "stall" state is removed as soon as robot stops trying to
   move forward or back.  This also means that you can rotate a robot even
   if it has collided with something (or intersects with it completely), you
   just can't drive forward or back until it no longer intersects/collides.
 * Fixed problems resulting from not recovering from handshake errors correctly.
 * Optimized many situations that would cause excessive blocking resulting
   in timeouts.

Enhancements:
 * Loads points from map, in addition to lines. (In earlier versions, if a map
   had no lines, you would see no map, just a black 1x1 meter square in the
   center of the window)
 * Loads maps in background, so loading map remotely doesn't hang up sim
 * Added --less-verbose option
 * Don't send "Sonar on" or "Sonar off" log messages if robot has no sonar
 * If --log-timing-stats is given, log simulation timing stats every 30 seconds
 * Various optimizations
 * If run in noninteractive mode, a crash triggers a crash handler which logs
   stack traces if possible (using GDB), and restarts MobileSim.
 * Tries a few times to open the requested port, before trying subsequent ports.
 * Added SIM_CTRL command code 4 to rotate log files, and also rotate log files
   before restarting MobileSim in crash handler.
 * Added SIM_CTRL commands 2 and 3 to load map in a locked "master map loader"
   mode (see documentation)
 * If no data is received from a client in 20 seconds, it is disconnected. (And
   robot is destroyed if it was created by a robot factory)
 * If no packets with valid checksums are received from a client after some
   time (pioneer_watchdog parameter, defaut 2 sec.), log a warning and stop the
   robot.
 * Robots created by a factory are given the connecting clients IP addresses as
   their names.
 * New --log-file-max-size and --daemonize options.
 * New --no-gui option.
 * Requested velocity, acceleration, and deceleration values are shown if
   View->Position Data is turned on.

MobileSim 0.4.3
October 19, 2007
------------------------------

Bug fixes:
 * Fixed bad model name with some .p files (e.g. in a directory)

MobileSim 0.4.2
October 20, 2007
------------------------------

Bug Fixes:
 * Fixed bad deceleration

MobileSim 0.4.1
August 20, 2007
------------------------------

Enhancements:
 * Reports lateral velocity and acceleration limits in configuration packet (for
   Seekur robot model)

Bug Fixes:
 * fixed broken --start option 
 * fixed MOVE and DHEAD commands to correctly reset state of relative motion on
    receiving new command (it would sometimes ignore the second command)

MobileSim 0.4.0
June  6, 2007
------------------------------

Fixes:
 * Increased maximum speed limits for p3dx, patrolbot, and peoplebot.
 * Reduced SICK laser noise parameters slightly, they were higher than the real SICK.
 * Increased range and angle at which SICK detects special reflectors
 * Report whether SONAR open command recieved in sonar flags in SIP, even if
   robot has no sonar (and therefore sonar's not really "open").
 * Fixed bad motion when decelerating very fast
 * Fixed crash when using multiple robots
 * Fixed crash after trying to connect multiple clients to the same robot
 * Fixed several memory leaks
 * Accelerations and velocities are now limited to a maximum of 65535 instead of 
   earlier, much smaller numbers.
 * Logging messages into the bottom of the window is more robust
 * Certain unsupported but commonly used commands are merely logged to the 
   console, rather than causing red warnings in the GUI: SETPBIOPORT (31), 
   JOYPAC (17), JOYDRIVE (47), IOREQ (40), MOVINGBLINK (49).
 * Disabled "Reset World" (really should have been "Reload") in the File
   menu, since MobileSim cannot reasonably reload any Stage "world" file
   yet.
 * Fixed "busy" mouse cursor on Linux (only used rarely at this point)

Enhancements:
 * Added new "Robot Factory". Instead of creating a persistant simulated robot,
   you can create a new robot model for each client as it connects, and destroyed
   when it disconnects. Use -R command-line argument instead of -r to enable.
 * Added command line argument to set a specific starting pose for robots, or
   specify that they should start outside the bounds of the map, or at a
   random position within the bounds of the map.
 * Instead of aborting if a TCP port cannot be opened, now a warning is
   displayed and the next available port is used instead.
 * It's now possible to choose number of robots and starting TCP port in the startup
   dialog.
 * Supply current rot. vel in the SIP, and charge status (always 0 for "NOT CHARGING")
 * A few new pieces of information have been added to the SIMSTAT information
   packet: desired and measures simulation timestep intervals, robot's true
   pose in the simulator, robot's sensors and other attached devices listed.
 * Added --cwd command-line option to choose directory to change to at program
   start (i.e. for map loading)
 * Any files found in $HOME/.MobileSim/include/ are included into the
   Stage world configuration -- place files with custom robot model definitions
   here.  (On Windows, C:\Documents and Settings\<User Name>\MobileSim\include)
   Note that you can include anything in these files, in addition to 
   model definitions -- including world and GUI settings, and even robot
   and model instantiations. See the Stage documentation.
 * Initial Seekur robot model definition (as an omnidirectional robot of similar
   size, shape and speed capability. Does not simulate individual wheels.)
 * You can supply the name of an ARIA parameter (.p) file instead of 
   the name of a robot model with the -r option, to create a robot model
   based on those parameters.
 * New command line options to adjust update interval times
 * New command line option to log to a file
 * Optimized the way multiple threads access stage, and how stage times
   its updates, allowing more robots to run in one MobileSim.
 * New command line argument to disable client commands
 * A simple concept of object height has been added, so plane sensors (laser) won't
   see short objects (amigobot).  Needs to be specially enabled in the robot
   model definitions, however.



MobileSim 0.3
February 27, 2006
------------------------------

Important Changes and Fixes:
 * Don't draw the "missing" sonar on a Powerbot.
 * Any number of sonar are now possible, spread accross multiple SIPs if 
   neccesary (instead of overflowing the SIP). Maximum number of readings 
   included in a SIP can be configured in the robot model definitions.
 * Disabled drawing of grid index labels, since they don't mean what
   you think they mean and are therefore misleading.  Will be re-implemented
   properly in the future.
 * Report all digital inputs as 1 which for things like Peoplebot IR sensors,
   since 1 actually means "not triggered".
 * Internally, Stage uses floating-point values to represent meters and 
   radians, while the Pioneer protocol uses integer values for milimeters 
   and degrees.  Is this version, values are rounded when converting from
   meters/radians, rather than just truncated, so, e.g. 44.99999999 degrees 
   becomes 45 degrees as an integer.
 * Some other cosmetic GUI fixes


Enhancements:
 * Menu item to load a new map added, also Simulator Control command added, with 
   one control operation available so far (1) to load a a new map file.  This meant 
   redesigning how maps are loaded into stage, with the pleasant side effect that 
   it's much faster.
 * Movable box-shaped obstacle objects can be manually added to the map with
   a text editor, and moved with the mouse in MobileSim.
 * "Reflector" lines are supported, and return a high reflectance value
   if the "extended" laser packet was requested (so a recent ARIA is needed
   to get reflectance data).  The old laser packet format does not include 
   reflectance values.
 * Laser now has "rules" for what reflectance value to return 
   (based on distance and angle to the detected surface).
 * New command line options to put the window in different modes 
 * More consistent console/log output with timestamps and optional HTML
   formatting.


MobileSim 0.2
December 28, 2005
------------------------------

Important Changes and Fixes:
 * LOCALE bug fixed (using wrong symbol for decimal point in world file)
 * Major Bug in world map scaling fixed
 * Update to Stage 2.0.0a which brings many new features:
   * Dragging robot with the mouse now changes true pose only, not odometry.
   * Odometric error is implemented (see PioneerRobotModels.world.inc for
      configuration)
   * New internal changes that will make future development easier,
      and also run better with very large numbers of robots simulated
 * Old simulator-only commands 38,66,67,68,69 are deprecated, new command
    numbers (that do not conflict with other ARCOS commands) should be used
    instead. See README.txt for a listing of command numbers.
 * Pioneer-specific parameters are given in models world file instead of
    hardcoded.
 * Fixed bug: position control in Stage (used by MOVE, HEAD, DHEAD) used
    command parameters to determine new set point; now new commands are always
    recognized.
 * Fixed bug in deceleration
 * A very simple model of sonar and laser noise is now implemented. 
    See PioneerRobotModels.world.inc to configure.
 * Will always report any robot's NAME to be "MobileSim" on client connection.
 * On REDHAT only: requires GTK 2.0 or greater packages, seperately installed. 
    GTK 2.4 is no longer provided with MobileSim. See README.txt for more 
    information. GTK 2.0 is a standard part of most RedHat installations.
 * Command to set robot's true pose (SIM_SET_POSE, 224) now takes three
    4-byte integers rather than three 2-byte integers.
 

Other Enhancements:
 * Multiple robot support added (via command line, no GUI yet; run with --help
    or see README.txt for info)
 * VEL2 command implemented
 * Messages, warnings and errors are displayed in GUI rather than printed on console.
    Also, a new simulator-only command SIM_MESSAGE for clients to print messages.
 * Laser configuration commands (for higher resolution, and to change FOV)
    implemented sufficiently for use with ARIA (see below)
 * Laser can be "flipped" (mounted upside down) in  model definitions
 * Will close client connection if there is a write error sending a SIP or Laser
    packet (the client has probably disconnected inproperly or crashed) and
    resume listening for new connections.
 * Preliminary support for laser reflectors, including support of a "Reflector"
    Cairn type (reflector support is available in ARIA >= 2.5)
 * Lays some groundwork for more customized model implementations, including
    plugins possibly.
 * new SIMSTAT packet can be requested. Not very useful now but will contain
    various operating statistics in the future.


MobileSim 0.1-1
May 27, 2005
-------------------------------

  * Remove ugly debug message and clean temp. files
  * /usr/local/bin/MobileEyes is now a symlink instead of a shell script

MobileSim 0.1-0
May, 2005
-------------------------------

  * First release of MobileSim.  Some features are still experimental,
    and some key features are missing, but it is useful for most purposes now.

