-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathChanges.txt
More file actions
458 lines (392 loc) · 21.2 KB
/
Changes.txt
File metadata and controls
458 lines (392 loc) · 21.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
MobileSim 0.9.8
January 29, 2018
------------------------------
Added a choice of modes for applying simulated odometric error.
The --odom-error-mode command-line argument can be used to select
the error behavior: new modes are "constant value", "random each update",
"random at init" and "none". Parameters for these are specified
in robot model parameters (from model definition file(s)). Values
being used are also now available in SIMSTAT packet sent to clients
if requested, and can be displayed in the Position Data in the GUI.
Fixed a bug with the stg_model_update process, where
a child model (e.g. laser sensor) could be updated before it's parent
position was updated, resulting in a lag in proportion to
velocity. This bug became more prevalent due to fix to model ceration
in 0.8.0.
Implemented DIGOUT command, and provide current DIGOUT state
in SIP. (IO packets and analog IO, however, are not yet implemented.)
Added GPS DOP and mounting position (offset) parameters to model
definitions. These are used if sending GPS data to clients in
the SIMSTAT packet, rather than center of the robot. Typical
mounting positions have been added to commonly used built in robot
types which should match ARIA parameters. Default if not specified
is 0,0, the center of the robot.
Mac OSX and MinGW build instructions improved.
Tool added to convert PNM and similar bitmap files to map.
MobileSim 0.8.0
June 30, 2016
------------------------------
Fixes major bug that resulted in connection failures when simulating
multiple robots:
* Decoupled Stage model instances from 1-to-1 relationships with
CWorldFile::CEntity/CProperty data structures, so that only one Entity
set is created for each modle type. This reduces central Stage data
bloat that accrues with each new connection. Fixes connection and
syncing slowdown over successive connections.
* Implemented ListeningSocket, an ArASyncTask that listens on TCP socket
for new client robots to connect. This is owned by a RobotFactory.
When a new client connection is opened, it is put onto a pending list.
Then during the normal update loop, a new robot model is created for
each pending client socket, and is added to the Stage world. Fixes
the majority of TCP connection failures.
Split processing of new map data in MapLoader::newMap() up into
chunks rather than doing all procenning in one main loop iteration, which
blocked client communications resulting in client dihsconnections. It is now
a pseudo-streaming process that blocks the other portions of the main update
loop for much shorter durations. Fixes most of the robot disconnection
issues during map change events.
MobileSim 0.7.5
April 13, 2016
------------------------------
* If a map has a georeference point (OriginLatLongAlt, which is added if
creating a map using MOGS tools), then the SIMSTAT packet includes calculated
latitude, longitude, altitude and a "GPS quality" value. Simulated GPS support
(ArSimulatedGPS) in Aria 2.9.1 and later use this to emulate GPS.
MobileSim now recognizes "BadGPSSector" and "SimBadGPSSector" areas
in a map, and sends a GPS quality of 100 when outside a Bad GPS sector, and
0 if inside a Bad GPS sector. ArSimulatedGPS will report a DOP and
GPS fix type (SimulatedFix or BadFix) depending on this value.
* Uses updated ARIA library (46970f9) with support for "2D-Map-Ex4" type
map files.
* README changed to Markdown (README.md) with HTML, text and PDF versions
generated from that.
* Misc minor fixes
MobileSim 0.7.4
September 9, 2014
------------------------------
* Added ghost mode. Use SIM_CTRL command with argument 7 to make the robot
ephemeral and invisible: other robots will not be able to sense or collide
with the robot, though it will still be visible in the GUI.
* It is possible to build MobileSim from source code on Mac OSX. See
README.src.txt. (note that MobileSim is not actively tested on Mac OSX
however.)
MobileSim 0.7.3
August 17, 2013
------------------------------
* fixed bug in logging. in particular, warnings about unsupported commands
could crash MobileSim or have cause other problems
* Log version number and build date when MobileSim starts
* moved logging of robot names and types to after possible change to logging to
a file if --log-file given.
* fixed possible crash or data corruption on some platforms (Windows 7) due to
invalid pointer after realloc(). (Thanks to Igor Bereznyak for help.)
* On Windows, switched to building with GTK 2.24.10 with GCC 4.6.1 (MinGW).
This along with the previous item has fixed some graphics rendering problems.
* Added initial version of a Pioneer LX model named "pioneer-lx"
* Fixed display of messages pane in GTK 2.24.10 (Ubuntu 12)
MobileSim 0.7.0
March 1, 2013
------------------------------
* It is now possible for multiple -R robot factory options to be given with
different robot types. Each factory will listen on successive ports starting
at 8101.
* If no data is received from client socket, then only a warning is printed
rather than ending session.
* Added support for battery type in robot model definitions via
pioneer_batterytype parameter. Currently only type 2 has special meaning.
When type 2 is selected, then battery state is represented as state of charge
instead of just voltage: SOC field is used in SIP instead of voltage, and
command #250 sets SOC instead of decivolts.
* Battery voltage is not reset to full each session (bug fix, changes via #250
persist to later sessions.)
* Fixed bug in creating a robot based on a newer .p file that doesn't have the
"LaserPossessed" parameter (would not add a laser to the robot even if
LaserType for the first laser was given). MobileSim now adds a laser if
either LaserPossessed is given, or the first laser has a nonempty LaserType
(But only SICK LMS-200 is simulated at this time; an LMS-200 is used
currently for any LaserType). This only affected using -r with a .p file. Using
the standard built-in robot types was OK.
* Fixed bug in which all sectors became box obstacles, not just sectors with SimObstacle=true
* Added seekurjr, mt400 and research patrolbot robot types.
MobileSim 0.6.2
April 7, 2010
------------------------------
* Fixed duplicate packets bug #1271
MobileSim 0.6.1
March 17, 2010
------------------------------
* Fixed bugs in handling unexpected packets or unexpected disconnects during client SYNC
* Fixed bug where received packets were logged if using a robot factory even if
--log-packets-received wasn't given.
* Fixed possible bug where MobileSim would still try to read from a disconnected client
(would log fstat error and skip the socket)
* Cleaned up some logging
MobileSim 0.6.0
March 12, 2010
------------------------------
* This version includes some major internal changes in how simulation updates
and client I/O are performed; they were previously done asynchronously in
many threads, they are now performed in a single thread. This should avoid
some subtle race conditions and other bugs that appeared in previous versions
of MobileSim in its interactions with stage and GTK (which are not thread
safe). Timing of tasks (simulation updates and sending packets to clients)
has also been improved.
* Fixed error in interpreting VEL2 command: left and right velocities were
swapped
* The deprecated compatability commands for robot positioning and exiting the sim
are now disabled by default (re-enable with --srisim-compat command line
option). The old laser-related commands are still enabled by default
(but can now be disabled with the --no-srisim-laser-compat option)
* MobileSim now sends the client a SIM_MAP_CHANGED packet (id=102) in response
to a map change command (SIM_CTRL command 1) or if the user loads a new map
using the GUI menu item. This packet is sent back after
the map has been loaded, and contains a flag to indicate whether a new map
really was loaded (or if it was skipped because the same map has already been
loaded), a flag that indicates whether the user loaded the map using the GUI
or a client requested it with SIM_CTRL 1, and the file name of the map that was
loaded.
* Separated --no-crash-handler into two new options: --no-crash-debug (disables
running GDB to get a stack trace) and --no-crash-restart (disables
automatically restarting MobileSim after a crash if running in Noninteractive
mode)
* pioneer_sip_cycle no longer appears in model definitions; at this time it
cannot be changed (it will always be 100ms/10hz)
MobileSim 0.5.0
January 28, 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.
* New SIMINFO packet with simulator metainformation. SIMSTAT has more variable
info as well.
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-1 Windows Package
unknown
------------------------------
Fixed missing DLLs (iconv, gmodule)
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.
* Added --ignore-command option to ignore specific client commands.
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.