Skip to content

Releases: proroklab/VectorizedMultiAgentSimulator

1.4.3

21 Sep 14:21
Compare
Choose a tag to compare

As always, we have a LOT of new updates and this time they are mostly community-driven.

Ovewrview

Terminated/truncated support and Gymnasium wrapper #143

Thanks to @LukasSchaefer, we now have the option to return terminated and truncated from vmas envs instead of done.

We further have wrappers for gymnasium (single vmas env) and vectorized gymnasium, which wraps a batched vmas environemnt, maintaining the n_envs dimension in the data.

Choose how you want to discretize continuous actions #119

Before, continuous actions were discretized in 3 options: increase, decrease, stay

Now, thanks to @rikifunt, you can choose how many options you want to split the continuous range in!

Vectorized lidars #124

Lidars have multiple rays that can see multiple entities. Thanks to @Zartris we know have vectorized both these dimensions making scaling seamless in the number of rays.

VIsualize the boundaries of the world #142

Thanks to @Giovannibriglia, if you set the world bouindaries in a scenario, VMAS now automatically plots them

More dynamics #125

  • Static: no movement actions
  • Forward: just froward and backwards force in the direction of the orientation
  • Rotation: just rotation action

Breaking changes

  • env.unwrapped() -> env.unwrapped in GymWrapper
  • removed from "discovery" a redundant agent.state.pos in observation

What's Changed

  • [Feature] Joint rotation offset and more dynamics by @matteobettini in #125
  • [BugFix] Fixed joints inferred angle by @matteobettini in #127
  • [Feature] Warn if spwaning entities takes too long by @matteobettini in #128
  • [Feature] different number of actions for each action dimension (discrete actions) by @rikifunt in #119
  • Introduce x_semidim and y_semidim parameters to enable customizable environment dimensions by @Giovannibriglia in #133
  • [BugFix] Discovery obs by @matteobettini in #137
  • [Bug fix] Navigation scenario: ensure entity placement within constrained environment boundaries by @Giovannibriglia in #139
  • [Feature] Enable to set the number of lidar rays in navigation, discovery and flocking scenarios by @Giovannibriglia in #141
  • [Feature] Boundary visualization for limited-size environments by @Giovannibriglia in #142
  • [Feature] Terminated/truncated support and Gymnasium wrapper by @LukasSchaefer in #143

New Contributors

Full Changelog: 1.4.2...1.4.3

1.4.2

10 Jul 09:49
Compare
Choose a tag to compare

VMAS 1.4.2

This time we have a LOT of exciting updates and community contributions.

New road traffic scenario

First and foremost, we have a new road_traffic scenario thanks to the formidable work of @Jianye-Xu !

Here is a gif to stimulate your appetite

drawing

Joints are more powerfull than ever

In #113 we made serious improvements to joints.

Now you can connect n-bodies to form new physical bodies that share all forces and torques.

Check out the renderings in #113 for examples of what can be done now in VMAS with joints

Here is a taster

342393854-cc920e53-cb03-4bc4-99ce-0c58e27ef08e-ezgif com-video-to-gif-converter (1)

LIDAR improvements

@Zartris made lidar his mission and helped on a lot of useful LIDAR features

  • Lidar angles are now relative to the agent rotation #101
  • rendering lidars is now optional #108
  • imporvement to lidar rendering and transparency #115

New pre_step and post_step scenario functions

@Zartris also made creating scenarios way easier with the addition of these 2 functions.

Check them out in #112

Kwargs check in scenarios

Thanks to @KaleabTessera we now have better kwargs checking that will warn you if you pass an unexpected parameter to a scenario
#117

What's Changed

New Contributors

Full Changelog: 1.4.1...1.4.2

VMAS-1.4.1

20 May 13:41
Compare
Choose a tag to compare

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

New Contributors

  • @kfu02 made their first contribution in #91

Full Changelog: VMAS-1.4.0...VMAS-1.4.1

VMAS-1.4.0

07 Feb 10:37
Compare
Choose a tag to compare

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

Full Changelog: VMAS-1.3.4...VMAS-1.4.0

VMAS-1.3.4

19 Jan 11:30
Compare
Choose a tag to compare

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

19 Dec 09:25
Compare
Choose a tag to compare

Fixed bugs related to new vecotrized constraints

Full Changelog: VMAS-1.3.0...VMAS-1.3.3

VMAS-1.3.0

02 Dec 12:11
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: VMAS-1.2.13...VMAS-1.3.0

VMAS-1.2.13

02 Nov 16:05
Compare
Choose a tag to compare
  • 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

20 Sep 21:32
Compare
Choose a tag to compare

What's Changed

Full Changelog: VMAS-1.2.11...VMAS-1.2.12

VMAS-1.2.11

24 May 09:18
Compare
Choose a tag to compare
  • Differential drive robot dynamics now available b9199e8
  • Observations can be also dictionaries of tensors now 25250a0