Releases: proroklab/VectorizedMultiAgentSimulator
VMAS-1.4.1
Highlights
- Drone dynamics by @gy2256 in #83 !!!
- Fix a bug where the package mass was not passed to the constructor in the transport scenarios by @kfu02 in #91
- Introduce
scenario.render_origin
by @matteobettini in #93 - Compatibility with Python 3.11 by @matteobettini in #95
- Better tests and CI on all platforms #89
- Now VMAS has docs!
What's Changed
- [Dynamics] Drone dynamics by @gy2256 in #83
- [CodeQuality] Pre-commit formatting by @matteobettini in #87
- [Docs] First instance of basic docs by @matteobettini in #85
- [Docs] Usage by @matteobettini in #88
- [Test] Better tests and multi OS by @matteobettini in #89
- [Notbooks] Refresh notebooks by @matteobettini in #90
- [Bug] Package mass arg now passed into constructor by @kfu02 in #91
- [Render] Introduce
scenario.render_origin
by @matteobettini in #93 - [Quality] Python 3.11 by @matteobettini in #95
New Contributors
Full Changelog: VMAS-1.4.0...VMAS-1.4.1
VMAS-1.4.0
Differentiable VMAS
That's right, VMAS is now fully differentiable!
How do I use it?
Just set grad_enabled=True
at environement construction time and have any input that requires gradients. This can be actions or scenario parameters. VMAS will keep track of the computation graph on that tensor over time.
What does it mean?
It means that you can differentiate any VMAS output, enabling differentaition of the transition dynamics, reward functions, and observation functions.
Why is it useful?
You can now optimize parameters in VMAS scenarios (e.g., parameters of the various scenario functions or simply initial state values) using losses computed on rewards or observations. It further allows you to backpropagate through time (simulation steps).
What's Changed
- [Feature] Differentiable VMAS by @matteobettini in #80
- [Refactor] DIff drive dynamics by @matteobettini in #81
Full Changelog: VMAS-1.3.4...VMAS-1.4.0
VMAS-1.3.4
Highlights
- VMAS actions are now decoupled from physics. This allows to define custom agent dynamic models (
Holonomic
,HolonomicWithRotation
,DiffDrive
,KinematicBicycle
) at construction. And also have additional custom actions. See #76 - Control Lyapunov Controllers are available in VMAS as heuristics! @gy2256 made this possible in #74
- Scenarios that could be done after a reset have been fixed (e.g., transport, dropout) and more kwargs were added to scenarios in #78
What's Changed
- Added an HeuristicPolicy with Control Lyapunov Controller by @gy2256 in #74
- [Feature] Actions detached from physics and allow any number of actions by @matteobettini in #76
- [Feature] Update scenarios by @matteobettini in #78
New Contributors
Full Changelog: VMAS-1.3.3...VMAS-1.3.4
VMAS-1.3.3
Fixed bugs related to new vecotrized constraints
Full Changelog: VMAS-1.3.0...VMAS-1.3.3
VMAS-1.3.0
Vectorized physics eginge
If you are using vmas, this is the time to pull.
The physics engine has been rewritten to run vectorised over the agents (not only over environments) with no changes at all to the VMAS logic and interface.
The change
- Before: vmas was vectorized over the environments, but the engine that resolves collisions and constraints ran a double for loop over the entities
- Now: the double for loop over the entities has been replaced by vectorization, making vmas vectorized both in the agent and in the environment dimensions while still keeping the possibility of heterogeneity among the agents.
What it means
- Normal environments can observe speedups around 10x
- Environments with high density of collidable entities will observe incredible speedups (especially on gpu) up to 10000x
- Simulating environments with large number of agents and entities of different shapes should be significantly faster with better computational scaling in the number of entities
Car-like robot dynamics
Thanks to @Jianye-Xu VMAS now has dynamics for car like robots. Meaning that you create your favourite traffic scenarios.
Check out the dedicated scenario to see how this works.
What's Changed
- [Refactor]
use_vmas_env
example compatible with 3d actions by @matteobettini in #69 - [Feature] New dynamics for car-like robots: kinematic bicycle model by @Jianye-Xu in #68
- [Rendering] Choose cmap to plot by @matteobettini in #70
- [Perf] Vectorized collisions and other major perf improvements by @matteobettini in #71
New Contributors
- @Jianye-Xu made their first contribution in #68
Full Changelog: VMAS-1.2.13...VMAS-1.3.0
VMAS-1.2.13
- Fixes to MPE resetting
- Introduces naming convention
<name>_<int>
for all scenarios (to be used in torchrl for automatic grouping pytorch/rl#1658)
VMAS-1.2.12
What's Changed
- [Feature] Text is a Geom and can be returned by scenarios by @matteobettini in #54
- detach() on input actions
- [DOCS] Torchrl notebook link by @matteobettini in #59
Full Changelog: VMAS-1.2.11...VMAS-1.2.12
VMAS-1.2.11
VMAS-1.2.10
Many new exciting things in vmas!:
- New scenarios: sampling, navigation, wind_flocking
- Fixed a rendering memory leak
- interactive_rendering.py accepts both scenario names and scenario class
- external forces (e.g. gravitiy) can be defined per agent
- improved flocking scenario
VMAS-1.2.9
- Fix a bug on the viewer device
- Now cloning all output and input from vmas simulator
- Ready for MAPPO IPPO example in torch rl (pytorch/rl#1027)