MobileSim 0.5.0 January 27, 2009 ------------------------------ * Fixed occasional crash (in obtaining laser data) * Fixed hang when restarting after a crash in noninteractive mode * --no-gui now implies --noninteractive 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\\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.