Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add MaMuJoCo-v1 environments #196

Merged
merged 175 commits into from
Feb 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
32dc22d
(temp) make mamujoco requirement mandatory
Kallinteris-Andreas Jan 9, 2023
061aa3e
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Jan 9, 2023
14e492f
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Jan 10, 2023
510f1c4
MaMuJoCo Doc update
Kallinteris-Andreas Jan 10, 2023
1a845a0
add ant2x4 image
Kallinteris-Andreas Jan 10, 2023
7fe9362
`MaMuJoCo` DOC Update (adding action space PICs)
Kallinteris-Andreas Jan 11, 2023
e6e49f1
more pics
Kallinteris-Andreas Jan 11, 2023
2c10773
typo fix
Kallinteris-Andreas Jan 11, 2023
53736ba
typo fixes
Kallinteris-Andreas Jan 11, 2023
59772fb
fix `shinx` warning
Kallinteris-Andreas Jan 11, 2023
10704ba
Merge branch 'main' into main
Kallinteris-Andreas Jan 11, 2023
1bd9ab4
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Jan 12, 2023
22e1110
`MaMuJoCo` DOC update
Kallinteris-Andreas Jan 12, 2023
e0d7e06
minor formating changes
Kallinteris-Andreas Jan 12, 2023
a631fbe
add `kwargs`
Kallinteris-Andreas Jan 12, 2023
9fd69db
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Jan 12, 2023
528d00f
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Jan 24, 2023
22d54bc
add `mujuco-v5` (init)
Kallinteris-Andreas Jan 24, 2023
81d98e2
`pre-commit`
Kallinteris-Andreas Jan 24, 2023
b65c031
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Mar 18, 2023
fe9a547
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Apr 7, 2023
e9a1643
add hopper_v5
Kallinteris-Andreas May 10, 2023
ba585c8
add walker2d
Kallinteris-Andreas May 10, 2023
1b4a0a3
add Half Cheetah
Kallinteris-Andreas May 10, 2023
479c3e1
typo fix
Kallinteris-Andreas May 10, 2023
bc2de82
add pusher
Kallinteris-Andreas May 10, 2023
2ec47a5
add swimmer
Kallinteris-Andreas May 10, 2023
a3e8906
pre-commit
Kallinteris-Andreas May 11, 2023
a3454bf
typo fix
Kallinteris-Andreas May 11, 2023
ef626cf
`xml_file` arg fixes
Kallinteris-Andreas May 11, 2023
3de59d9
added `InvertedPendulum-v5`
Kallinteris-Andreas May 13, 2023
a945196
cleanup
Kallinteris-Andreas May 13, 2023
a1b5899
rename
Kallinteris-Andreas May 13, 2023
e3c8939
fix camera on new models
Kallinteris-Andreas May 13, 2023
b0f5edf
add inv_double_pend
Kallinteris-Andreas May 14, 2023
2567cd4
fix `humanoid` `info`
Kallinteris-Andreas May 14, 2023
7debcd5
`humanoid` add include obs arguments
Kallinteris-Andreas May 14, 2023
29ce9a8
update reacher DOC
Kallinteris-Andreas May 14, 2023
8978413
update obs shape (humanoid)
Kallinteris-Andreas May 14, 2023
a857d9c
`Ant` cleanup and fix `info`
Kallinteris-Andreas May 14, 2023
8ac23b0
update `Ant` doc
Kallinteris-Andreas May 14, 2023
567d0fe
re-add to humanoid `contact_cost`
Kallinteris-Andreas May 15, 2023
cb1c32d
fix obs shape
Kallinteris-Andreas May 15, 2023
081236b
inv_double_pend update doc
Kallinteris-Andreas May 15, 2023
22a35ce
Ant doc update
Kallinteris-Andreas May 17, 2023
361cb0f
reacher add changelogg
Kallinteris-Andreas May 17, 2023
ac7a0a2
`xml_file` doc fix for hopper and walker
Kallinteris-Andreas May 17, 2023
0bb5798
update humanoid doc
Kallinteris-Andreas May 17, 2023
eade7e2
Ant obs doc fix
Kallinteris-Andreas May 17, 2023
ed32b61
add `__credits__`
Kallinteris-Andreas May 17, 2023
177e321
`pre-commit`
Kallinteris-Andreas May 17, 2023
c57b0dc
doc update
Kallinteris-Andreas May 17, 2023
4044812
doc args cleanup
Kallinteris-Andreas May 18, 2023
5ccaca8
fix pusher changelogs
Kallinteris-Andreas May 18, 2023
18bada3
`reacher` & `pusher` add xml_file argument
Kallinteris-Andreas May 18, 2023
711a9ca
fix typos in `humanoid`
Kallinteris-Andreas May 18, 2023
6e99ff3
rename obs args
Kallinteris-Andreas May 19, 2023
caa8fe9
ant add `include_cfrc_ext_in_observation`
Kallinteris-Andreas May 19, 2023
e9d8ba6
register new envs
Kallinteris-Andreas May 19, 2023
eb838b5
fix register
Kallinteris-Andreas May 19, 2023
571d057
typo fix
Kallinteris-Andreas May 19, 2023
8ef1c90
fix humanoid pickle
Kallinteris-Andreas May 19, 2023
670e485
fix humanoid pickle (for real this time)
Kallinteris-Andreas May 19, 2023
f02f7b4
add `reset_noise_scale` to double_pend
Kallinteris-Andreas May 24, 2023
8f75f24
add new inv_double_pend args
Kallinteris-Andreas May 24, 2023
a050636
inv_double_pend re_order ez pickle init to the start
Kallinteris-Andreas May 24, 2023
4d5b052
add humanoidstandup
Kallinteris-Andreas May 24, 2023
25dfb87
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas May 24, 2023
867cfc9
update humanoid standup `info`
Kallinteris-Andreas May 25, 2023
b6e1996
`pre-commit`
Kallinteris-Andreas May 25, 2023
b89e50a
cleanup
Kallinteris-Andreas May 26, 2023
ce82a8e
hopper add `info` "z_distance_from_origin"
Kallinteris-Andreas May 26, 2023
b879488
fix
Kallinteris-Andreas May 26, 2023
ff585f7
add `frame_skip` argument
Kallinteris-Andreas May 26, 2023
9bdc5df
add tendon `info`
Kallinteris-Andreas May 26, 2023
d4271aa
fix exclude refactor
Kallinteris-Andreas May 26, 2023
42f5439
update doc
Kallinteris-Andreas May 26, 2023
15259d5
update obs creation
Kallinteris-Andreas May 26, 2023
fb96314
typo fix
Kallinteris-Andreas May 26, 2023
b8aaf6d
cleanup
Kallinteris-Andreas May 26, 2023
e2ce260
fixed humanoid arguments docs
Kallinteris-Andreas May 26, 2023
2674f97
add dynamic obs_size calculation
Kallinteris-Andreas May 26, 2023
5a025b6
add `metadata["observation_structure"]`
Kallinteris-Andreas May 27, 2023
191e7ab
cartpole add args
Kallinteris-Andreas May 27, 2023
344550a
typo fix
Kallinteris-Andreas May 27, 2023
a265c47
added `reacher`&`pusher` reward weights
Kallinteris-Andreas May 27, 2023
802e22d
cleanup
Kallinteris-Andreas May 27, 2023
f60b453
cleanup
Kallinteris-Andreas May 29, 2023
e8b045f
cleanup
Kallinteris-Andreas May 29, 2023
a7c883d
`pre-commit`
Kallinteris-Andreas May 29, 2023
9c3c9e0
add `default_camera_config` argunment
Kallinteris-Andreas May 29, 2023
938b4e9
fix `ant/humanoid` `info["x/y_position"]`
Kallinteris-Andreas Jun 1, 2023
8800d5f
`ant` add `forward_reward_weight`
Kallinteris-Andreas Jun 1, 2023
3c56866
ant doc
Kallinteris-Andreas Jun 1, 2023
f67639e
`ant` cleaned up xy pos aquasition
Kallinteris-Andreas Jun 1, 2023
ebc96c0
added `main_body`
Kallinteris-Andreas Jun 1, 2023
5263fe6
fix `healthy_reward`
Kallinteris-Andreas Jun 2, 2023
89efd65
pre-commit
Kallinteris-Andreas Jun 2, 2023
ca360f9
fix ant velocity
Kallinteris-Andreas Jun 2, 2023
3e6fc80
dict
Kallinteris-Andreas Jun 2, 2023
8921dcd
update renderer
Kallinteris-Andreas Jun 3, 2023
360b6dc
add `walker2d` `info[z_distance_from_origon]`
Kallinteris-Andreas Jun 5, 2023
f96d888
add `reset_info`
Kallinteris-Andreas Jun 5, 2023
9f910fb
refactored observation structures to a member variable
Kallinteris-Andreas Jun 5, 2023
85e9eda
cleanup observation_structure
Kallinteris-Andreas Jun 5, 2023
aa1b9e2
Final? documention update
Kallinteris-Andreas Jun 10, 2023
577f21a
cleanup
Kallinteris-Andreas Jun 16, 2023
c406418
fix distance_from_origin info
Kallinteris-Andreas Jun 16, 2023
faea55c
pre-commit
Kallinteris-Andreas Jun 16, 2023
7875975
Merge branch 'Farama-Foundation:main' into main
Kallinteris-Andreas Jun 23, 2023
358f55d
Update maze_v4.py
Kallinteris-Andreas Jun 23, 2023
f94a2c3
cleanup
Kallinteris-Andreas Jun 27, 2023
2ba60ac
Merge branch 'Farama-Foundation:main' into mmjc-v1
Kallinteris-Andreas Jul 17, 2023
eb4f21b
cleanup
Kallinteris-Andreas Jul 17, 2023
e188458
clean
Kallinteris-Andreas Jul 17, 2023
cf7ebe3
cleaup local/global cat generation
Kallinteris-Andreas Oct 3, 2023
160b783
remove `osbk._observation_structure`
Kallinteris-Andreas Oct 3, 2023
eab7f08
type hint adition
Kallinteris-Andreas Oct 10, 2023
651e398
doc typo fix
Kallinteris-Andreas Oct 10, 2023
8f2bc1d
more to `gymnasium/mujoco-v5`
Kallinteris-Andreas Oct 10, 2023
ed9f05f
disable const 0 observation (`Ant`&`Humanoid`)
Kallinteris-Andreas Oct 10, 2023
73938be
port to v5 (missed one)
Kallinteris-Andreas Oct 10, 2023
0a5be3a
`dummy_node`, when `factorizatoion=None` now includes action_id
Kallinteris-Andreas Oct 11, 2023
7f7e83c
update `map_global_state_to_local_observations` for `v5`
Kallinteris-Andreas Oct 11, 2023
cf23584
fix `Walker2d` globals from `[root_x, root_x, root_z]` to `[root_x, r…
Kallinteris-Andreas Oct 12, 2023
3f58f72
add `ignore_body_fn` in `build_obs`
Kallinteris-Andreas Oct 16, 2023
1f7ca8a
enchance observation mapping
Kallinteris-Andreas Oct 16, 2023
80e8ce2
fix map_obs_local2global error msg
Kallinteris-Andreas Oct 16, 2023
ff7e647
remove `ManySegment` classes
Kallinteris-Andreas Oct 16, 2023
ab86e78
rename to `v1`
Kallinteris-Andreas Oct 16, 2023
e2d3209
Merge branch 'Farama-Foundation:main' into mmjc-v1
Kallinteris-Andreas Oct 17, 2023
8480ce4
update docstrings
Kallinteris-Andreas Oct 17, 2023
5c83c9b
cleanup
Kallinteris-Andreas Oct 17, 2023
53a5d23
add support for loading custom envs
Kallinteris-Andreas Oct 19, 2023
502bf90
cleanup
Kallinteris-Andreas Oct 20, 2023
02c8c32
cleanup
Kallinteris-Andreas Oct 23, 2023
fa7be3f
fixed temp assets not being removed
Kallinteris-Andreas Oct 23, 2023
610e5c1
fix stupid bug
Kallinteris-Andreas Oct 23, 2023
c743560
update manysegswimmer timestep to match swimmer
Kallinteris-Andreas Oct 24, 2023
ea649c1
update swimmer to support `mujoco>=3.0.0`
Kallinteris-Andreas Oct 25, 2023
7559f42
change manysegmentant timestep
Kallinteris-Andreas Oct 27, 2023
1bffa21
add test for many segment swimmer
Kallinteris-Andreas Oct 27, 2023
4d7c918
expand testing to include different obs types
Kallinteris-Andreas Oct 30, 2023
6638050
Merge branch 'Farama-Foundation:main' into mmjc-v1
Kallinteris-Andreas Oct 30, 2023
8b23411
add a comment
Kallinteris-Andreas Nov 2, 2023
eeba565
factorization and cleanup
Kallinteris-Andreas Nov 2, 2023
942a6bb
`gymnasium==1.0.0` compatibility
Kallinteris-Andreas Nov 13, 2023
17c8ffc
`gymnasium==1.0.0` API
Kallinteris-Andreas Nov 13, 2023
1a2b0e3
updated documention
Kallinteris-Andreas Nov 28, 2023
3eee541
update single
Kallinteris-Andreas Dec 15, 2023
95c48cf
make `jinja2` optional and cleanup
Kallinteris-Andreas Dec 15, 2023
5112fbb
add multiswimmer doc
Kallinteris-Andreas Dec 16, 2023
a086668
Merge branch 'Farama-Foundation:main' into mmjc-v1
Kallinteris-Andreas Feb 14, 2024
b0d52ab
Update pyproject.tom
Kallinteris-Andreas Feb 14, 2024
405f667
Update pyproject.toml
Kallinteris-Andreas Feb 17, 2024
7638294
Update __init__.py
Kallinteris-Andreas Feb 17, 2024
889ba7a
Merge pull request #2 from Farama-Foundation/main
Kallinteris-Andreas Feb 17, 2024
d787a03
Update __init__.py
Kallinteris-Andreas Feb 17, 2024
a8eec79
`pre-commit`
Kallinteris-Andreas Feb 17, 2024
7621074
Update index.md
Kallinteris-Andreas Feb 18, 2024
eae4216
Update many_segment_swimmer.py
Kallinteris-Andreas Feb 18, 2024
c240f56
Update many_segment_ant.py
Kallinteris-Andreas Feb 18, 2024
9a62293
Update ma_ant.md
Kallinteris-Andreas Feb 19, 2024
a5c1f15
Update ma_coupled_half_cheetah.md
Kallinteris-Andreas Feb 19, 2024
1b1baf9
Update ma_half_cheetah.md
Kallinteris-Andreas Feb 19, 2024
1148538
Update ma_hopper.md
Kallinteris-Andreas Feb 19, 2024
37f6e25
Update ma_humanoid.md
Kallinteris-Andreas Feb 19, 2024
0fbbd3e
Update ma_humanoid_standup.md
Kallinteris-Andreas Feb 19, 2024
d588b29
Update ma_multiagentswimmer.md
Kallinteris-Andreas Feb 19, 2024
beb7b71
Update ma_pusher.md
Kallinteris-Andreas Feb 19, 2024
56627bb
Update ma_reacher.md
Kallinteris-Andreas Feb 19, 2024
2e40633
Update ma_single.md
Kallinteris-Andreas Feb 19, 2024
8c64c7d
Update ma_swimmer.md
Kallinteris-Andreas Feb 19, 2024
a0cd1b6
Update ma_walker2d.md
Kallinteris-Andreas Feb 19, 2024
95a748c
Update README.md
Kallinteris-Andreas Feb 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ The [D4RL](https://github.com/Farama-Foundation/D4RL) environments are now avail
The different tasks involve hammering a nail, opening a door, twirling a pen, or picking up and moving a ball.
* [Franka Kitchen](https://robotics.farama.org/envs/franka_kitchen/) - Multitask environment in which a 9-DoF Franka robot is placed in a kitchen containing several common household items. The goal of each task is to interact with the items in order to reach a desired goal configuration.

* [MaMuJoCo](https://robotics.farama.org/envs/MaMuJoCo/) - A collection of multi agent factorizations of the [Gymnasium/MuJoCo](https://gymnasium.farama.org/environments/mujoco/) environments and a framework for factorizing robotic environments, uses the [pettingzoo.ParallelEnv](https://pettingzoo.farama.org/api/parallel/) API.

**WIP**: generate new `D4RL` environment datasets with [Minari](https://github.com/Farama-Foundation/Minari).

## Multi-goal API
Expand Down
31 changes: 18 additions & 13 deletions docs/envs/MaMuJoCo/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,19 @@ Gymansium-Robotics/MaMuJoCo Represents the first, easy to use Framework for rese
MaMuJoCo mainly uses the [PettingZoo.ParallelAPI](https://pettingzoo.farama.org/api/parallel/), but also supports a few extra functions:

```{eval-rst}
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_local_actions_to_global_action
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_local_actions_to_global_action
```

```{eval-rst}
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_global_action_to_local_actions
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_global_action_to_local_actions
```
```{eval-rst}
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_global_state_to_local_observations
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_global_state_to_local_observations
```
```{eval-rst}
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.map_local_observation_to_global_state
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.map_local_observations_to_global_state
```
```{eval-rst}
.. autofunction:: gymnasium_robotics.mamujoco_v0.get_parts_and_edges
.. autofunction:: gymnasium_robotics.mamujoco_v1.get_parts_and_edges
```

MaMuJoCo also supports the [PettingZoo.AECAPI](https://pettingzoo.farama.org/api/aec/) but does not expose extra functions.
Expand All @@ -41,19 +40,19 @@ MaMuJoCo also supports the [PettingZoo.AECAPI](https://pettingzoo.farama.org/api

### Arguments
```{eval-rst}
.. autofunction:: gymnasium_robotics.mamujoco_v0.parallel_env.__init__
.. autofunction:: gymnasium_robotics.mamujoco_v1.parallel_env.__init__
```



## How to create new agent factorizations
### example 'Ant-v4', '8x1'
### example 'Ant-v5', '8x1'
In this example, we will create an agent factorization not present in Gymnasium-Robotics/MaMuJoCo the "Ant"/'8x1', where each agent controls a single joint/action (first implemented by [safe-MaMuJoCo](https://github.com/chauncygu/Safe-Multi-Agent-Mujoco)).

first we will load the graph of MaMuJoCo:
```python
>>> from gymnasium_robotics.mamujoco_v0 import get_parts_and_edges
>>> unpartioned_nodes, edges, global_nodes = get_parts_and_edges('Ant-v4', None)
>>> from gymnasium_robotics.mamujoco_v1 import get_parts_and_edges
>>> unpartioned_nodes, edges, global_nodes = get_parts_and_edges('Ant-v5', None)
```
The `unpartioned_nodes` contain the nodes of the MaMuJoCo graph.
The `edges` well, contain the edges of the graph.
Expand All @@ -63,18 +62,23 @@ To create our '8x1' partition we will need to partition the `unpartioned_nodes`:
```python
>>> unpartioned_nodes
[(hip1, ankle1, hip2, ankle2, hip3, ankle3, hip4, ankle4)]
>>> partioned_nodes = [(unpartioned_nodes[0][0],), (unpartioned_nodes[0][1],), (unpartioned_nodes[0][2],), (unpartioned_nodes[0][3],), (unpartioned_nodes[0][4],), (unpartioned_nodes[0][5],), (unpartioned_nodes[0][6],), (unpartioned_nodes[0][7],)]>>> partioned_nodes
>>> partioned_nodes = [(unpartioned_nodes[0][0],), (unpartioned_nodes[0][1],), (unpartioned_nodes[0][2],), (unpartioned_nodes[0][3],), (unpartioned_nodes[0][4],), (unpartioned_nodes[0][5],), (unpartioned_nodes[0][6],), (unpartioned_nodes[0][7],)]
>>> partioned_nodes
[(hip1,), (ankle1,), (hip2,), (ankle2,), (hip3,), (ankle3,), (hip4,), (ankle4,)]
```
Finally package the partitions and create our environment:
```python
>>> my_agent_factorization = {"partition": partioned_nodes, "edges": edges, "globals": global_nodes}
>>> gym_env = mamujoco_v0('Ant', '8x1', agent_factorization=my_agent_factorization)
>>> gym_env = mamujoco_v1('Ant', '8x1', agent_factorization=my_agent_factorization)
```

## Version History
v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of [the original multiagent_mujuco](https://github.com/schroederdewitt/multiagent_mujoco)
* v1:
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
- When `factorizatoion=None`, the `env.gent_action_partitions.dummy_node` now contains `action_id` (it used to be `None`).
- Added `map_local_observations_to_global_state` & optimized runtime performance of `map_global_state_to_local_observations`.
- Added `gym_env` argument which can be used to load third-party `Gymansium.MujocoEnv` environments.
* v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of [the original multiagent_mujuco](https://github.com/schroederdewitt/multiagent_mujoco)

```{toctree}
:hidden:
Expand All @@ -84,6 +88,7 @@ ma_half_cheetah.md
ma_hopper.md
ma_humanoid_standup.md
ma_humanoid.md
ma_multiagentswimmer.md
ma_reacher.md
ma_swimmer.md
ma_pusher.md
Expand Down
20 changes: 12 additions & 8 deletions docs/envs/MaMuJoCo/ma_ant.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@ This Environment is part of [MaMuJoCo](https://robotics.farama.org/envs/MaMuJoCo
The task is [Gymansium's MuJoCo/Ant](https://gymnasium.farama.org/environments/mujoco/ant/).


| Defaults | `env = mamujoco_v0.parallel_env("Ant", None)` |
| Defaults | `env = mamujoco_v1.parallel_env("Ant", None)` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0']` |
| Number of Agents | 1 |
| Action Spaces | `{'agent_0' : Box(-1, 1, (8,), float32)}` |
| Part partition | `[(hip4, ankle4, hip1, ankle1, hip2, ankle2, hip3, ankle3)]` |

## Action Space
The action spaces is depended on the partitioning
The shape of the action space depends on the partitioning. The partitioning has the following form:

### if partitioning is None:
```{figure} figures/ant.png
:name: ant
```

| Instantiate | `env = mamujoco_v0.parallel_env("Ant", None)` |
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", None)` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0']` |
| Number of Agents | 1 |
Expand All @@ -56,7 +56,7 @@ If partitioning, is None then the environment contains a single agent with the s
:name: ant_2x4
```

| Instantiate | `env = mamujoco_v0.parallel_env("Ant", "2x4")` |
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", "2x4")` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1']` |
| Number of Agents | 2 |
Expand Down Expand Up @@ -86,7 +86,7 @@ The environment is partitioned in 2 parts, the front part (containing the front
:name: ant_2x4d
```

| Instantiate | `env = mamujoco_v0.parallel_env("Ant", "2x4d")` |
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", "2x4d")` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1']` |
| Number of Agents | 2 |
Expand Down Expand Up @@ -114,7 +114,7 @@ The environment is partitioned in 2 parts, split diagonally.
:name: ant_4x2
```

| Instantiate | `env = mamujoco_v0.parallel_env("Ant", "4x2")` |
| Instantiate | `env = mamujoco_v1.parallel_env("Ant", "4x2")` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1', 'agent_2', 'agent_3']` |
| Number of Agents | 4 |
Expand Down Expand Up @@ -168,7 +168,7 @@ All agents receive the same [Gymnasium's Ant](https://gymnasium.farama.org/envir


## Starting state
The starting state of the environment is the as [Gymnasium's Ant](https://gymnasium.farama.org/environments/mujoco/ant/#starting-state).
The starting state of the environment is the same as [Gymnasium's Ant](https://gymnasium.farama.org/environments/mujoco/ant/#starting-state).



Expand All @@ -178,7 +178,11 @@ All agent terminate and truncate at the same time given the same conditions as [


## Version History
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
* v1:
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
- Now observes `local_categories` of `cfrc_ext` by default (same as `Gymnasium/MuJoCo-v5/Ant`).
- Renamed global node `torso` → `root`.
* v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
- Fixed diagonal factorization ("2x4d") not being diagonal.
- Fixed Global observations (The Ant's Torso: `rootx`, `rooty`, `rootz`) not being observed.
Expand Down
10 changes: 6 additions & 4 deletions docs/envs/MaMuJoCo/ma_coupled_half_cheetah.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ The environment consists of 2 half cheetahs coupled by an elastic tendon.


## Action Space
The action spaces is depended on the partitioning.
The shape of the action space depends on the partitioning. The partitioning has the following form:

### if partitioning is None:
```{figure} figures/coupled_half_cheetah.png
:name: coupled_half_cheetah
```

| Instantiate | `env = mamujoco_v0.parallel_env("CoupledHalfCheetah", None)` |
| Instantiate | `env = mamujoco_v1.parallel_env("CoupledHalfCheetah", None)` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0']` |
| Number of Agents | 1 |
Expand Down Expand Up @@ -49,7 +49,7 @@ If partitioning, is `None`, then the environment contains a single agent with th
:name: coupled_half_cheetah_1p1
```

| Instantiate | `env = mamujoco_v0.parallel_env("CoupledHalfCheetah", "1p1")`|
| Instantiate | `env = mamujoco_v1.parallel_env("CoupledHalfCheetah", "1p1")`|
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1']` |
| Number of Agents | 2 |
Expand Down Expand Up @@ -98,7 +98,7 @@ All agents receive the same average reward of each cheetah.


## Starting state
The starting state of the environment is the as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state) (but with 2 cheetahs).
The starting state of the environment is the same as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state) (but with 2 cheetahs).



Expand All @@ -108,6 +108,8 @@ All agent terminate and truncate at the same time, given the same conditions as


## Version History
* v1:
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
- Fixed action mapping of the second cheetah (It would previously not work)
Expand Down
12 changes: 7 additions & 5 deletions docs/envs/MaMuJoCo/ma_half_cheetah.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ The task is [Gymansium's MuJoCo/Half Cheetah](https://gymnasium.farama.org/envir


## Action Space
The action spaces is depended on the partitioning
The shape of the action space depends on the partitioning. The partitioning has the following form:

### if partitioning is None:
```{figure} figures/half_cheetah.png
:name: half_cheetah
```

| Instantiate | `env = mamujoco_v0.parallel_env("HalfCheetah", None)` |
| Instantiate | `env = mamujoco_v1.parallel_env("HalfCheetah", None)` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0']` |
| Number of Agents | 1 |
Expand All @@ -47,7 +47,7 @@ If partitioning, is `None`, then the environment contains a single agent with th
:name: half_cheetah_2x3
```

| Instantiate | `env = mamujoco_v0.parallel_env("HalfCheetah", "2x3")`|
| Instantiate | `env = mamujoco_v1.parallel_env("HalfCheetah", "2x3")`|
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1']` |
| Number of Agents | 2 |
Expand Down Expand Up @@ -75,7 +75,7 @@ The environment is partitioned in 2 parts, the front part (containing the front
:name: half_cheetah_6x1
```

| Instantiate | `env = mamujoco_v0.parallel_env("HalfCheetah", "6x1")`|
| Instantiate | `env = mamujoco_v1.parallel_env("HalfCheetah", "6x1")`|
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1', 'agent_2', 'agent_3', 'agent_4', 'agent_5']` |
| Number of Agents | 6 |
Expand Down Expand Up @@ -129,7 +129,7 @@ All agents receive the same [Gymnasium's Half Cheetah](https://gymnasium.farama.


## Starting state
The starting state of the environment is the as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state).
The starting state of the environment is the same as [Gymnasium's Half Cheetah](https://gymnasium.farama.org/environments/mujoco/half_cheetah/#starting-state).



Expand All @@ -138,6 +138,8 @@ All agent terminate and truncate at the same time, given the same conditions as


## Version History
* v1:
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
- Added/Fixed Global observations (The Cheetah's front tip: `rootx`, `rooty`, `rootz`) not being observed.
Expand Down
10 changes: 6 additions & 4 deletions docs/envs/MaMuJoCo/ma_hopper.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ The task is [Gymansium's MuJoCo/Hopper](https://gymnasium.farama.org/environment


## Action Space
The action spaces is depended on the partitioning
The shape of the action space depends on the partitioning. The partitioning has the following form:

### if partitioning is None:
```{figure} figures/hopper.png
:name: hopper
```

| Instantiate | `env = mamujoco_v0.parallel_env("Hopper", None)` |
| Instantiate | `env = mamujoco_v1.parallel_env("Hopper", None)` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0']` |
| Number of Agents | 1 |
Expand All @@ -47,7 +47,7 @@ If partitioning, is `None`, then the environment contains a single agent with th
:name: hopper_3x1
```

| Instantiate | `env = mamujoco_v0.parallel_env("Hopper", "3x1")`|
| Instantiate | `env = mamujoco_v1.parallel_env("Hopper", "3x1")`|
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1', 'agent_2']` |
| Number of Agents | 3 |
Expand Down Expand Up @@ -89,7 +89,7 @@ All agents receive the same [Gymnasium's Hopper](https://gymnasium.farama.org/en


## Starting state
The starting state of the environment is the as [Gymnasium's Hopper](https://gymnasium.farama.org/environments/mujoco/hopper/#starting-state).
The starting state of the environment is the same as [Gymnasium's Hopper](https://gymnasium.farama.org/environments/mujoco/hopper/#starting-state).



Expand All @@ -98,6 +98,8 @@ All agent terminate and truncate at same time given the same conditions as [Gymn


## Version History
* v1:
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
- Fixed Global observations (The Hopper's top: `rootx`, `rooty`, `rootz`) not being observed.
11 changes: 7 additions & 4 deletions docs/envs/MaMuJoCo/ma_humanoid.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ The task is [Gymansium's MuJoCo/Humanoid](https://gymnasium.farama.org/environme


## Action Space
The action spaces is depended on the partitioning
The shape of the action space depends on the partitioning. The partitioning has the following form:

### if partitioning is None:
```{figure} figures/humanoid.png
:name: humanoid
```

| Instantiate | `env = mamujoco_v0.parallel_env("Humanoid", None)` |
| Instantiate | `env = mamujoco_v1.parallel_env("Humanoid", None)` |
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0']` |
| Number of Agents | 1 |
Expand Down Expand Up @@ -60,7 +60,7 @@ If partitioning, is `None` then the environment contains a single agent with the
:name: humanoid_9|8
```

| Instantiate | `env = mamujoco_v0.parallel_env("Humanoid", "3x1")`|
| Instantiate | `env = mamujoco_v1.parallel_env("Humanoid", "3x1")`|
|-----------------------|------------------------------------------------------|
| Agents | `agents= ['agent_0', 'agent_1']` |
| Number of Agents | 2 |
Expand Down Expand Up @@ -114,7 +114,7 @@ All agents receive the same [Gymnasium's Humanoid](https://gymnasium.farama.org/


## Starting state
The starting state of the environment is the as [Gymnasium's Humanoid](https://gymnasium.farama.org/environments/mujoco/humanoid/#starting-state).
The starting state of the environment is the same as [Gymnasium's Humanoid](https://gymnasium.farama.org/environments/mujoco/humanoid/#starting-state).



Expand All @@ -123,6 +123,9 @@ All agent terminate and truncate at the same time, given the same conditions as


## Version History
* v1:
- Now based on `Gymnasium/MuJoCo-v5` instead of `Gymnasium/MuJoCo-v4` (https://github.com/Farama-Foundation/Gymnasium/pull/572).
- No longer observes `qfrc_actuator` of `root` & `cinert`, `cvel`, `qfrc_actuator`, `cfrc_ext` of `worldbody` (same as `Gymnasium/MuJoCo-v5/Humanoid`).
- v0: Initial version release, uses [Gymnasium.MuJoCo-v4](https://gymnasium.farama.org/environments/mujoco/), and is a fork of the original MaMuJoCo [schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco).
Changes from the original `MaMuJoCo` ([schroederdewitt/multiagent_mujoco](https://github.com/schroederdewitt/multiagent_mujoco)):
- Added/Fixed Global observations (The Humanoids's torso: `rootx`, `rooty`, `rootz`) not being observed.
Expand Down
Loading
Loading