This documents changes for each Gridsim release. These can also be found with each Github release.
All notable changes to this project will be documented in this file.
You can now set the contents of a
Messageby key, without needing to create a new message.
When creating a
ConfigParser, you can now choose to show warnings when getting a value that isn’t in the config file
If a data directory (in the path for a
Loggerfilename) does not exist, it will be created.
log_system_info()allows you to easily save information about the system on which the experiments are being run.
Trying to have a
Robotsample outside of the arena now returns
None. Previously, this threw a lower-level error about an image index being out of range.
Formatting: Changed to 100-character line limit (from 80).
[Under the hood] Renamed
Previously, if you tried to
sample()a negative position in the World, it would loop the index around and give you the value of a position on the other side of the environment. Now, this is considered out of bounds and returns
Improve performance for drawing large number of tags in the
Viewer(by converting coordinates to integers).
Trying to use the
Viewerwithout an environment image in the World would cause a crash. Now it doesn’t.
Return type and documentation for
sample()now matches that of the environment (returns None if sampling outside boundaries).
Loggeris now stored as an integer (since it’s ticks). Previously, it was a float.
There’s no way to set the whole message contents or clear keys/values in the contents
Messagenow has “truthiness”: null messages are
Falseand non-null messages are
Messages contents can be accessed by key with the
get()method, as well as still being able to retrieve the entire message dictionary contents.
Created this changelog
Message.tx_id()has been renamed to the (more informative)
init()isn’t run until the robot is placed in the World. This allows robots to have access to
Worldinformation (like the arena size) in the
[Under the hood] World’s environments are abstracted to have empty and non-empty types, which cleans up code to get rid of reliance on checking for environments being
[Under the hood] Reduce reliance on cheating and accessing private variables and methods (underscore-prefixed methods/variables)
Message.is_nullhas been removed. Instead, directly use the boolean conversion described above.
Order of commands run on the robot resulted in incorrect movements (robot-specific
move(), then Robot controller/loop function, then collision/environment-aware
_moveoperation to move the robots which was using a different move command)
Remove mypy/flake8 from requirements, since they’re for local development/linting.