Commit eec03c6a authored by Benjamin Beyret's avatar Benjamin Beyret
Browse files

v0.2 release

parent 041b5800
......@@ -36,9 +36,9 @@ Finally download the environment for your system:
| OS | Environment link |
| --- | --- |
| Linux | [download v0.1](https://www.doc.ic.ac.uk/~bb1010/animalAI/env_linux_v0.1.zip) |
| MacOS | [download v0.1](https://www.doc.ic.ac.uk/~bb1010/animalAI/env_mac_v0.1.zip) |
| Windows | [download v0.1](https://www.doc.ic.ac.uk/~bb1010/animalAI/env_windows_v0.1.zip) |
| Linux | [download v0.2](https://www.doc.ic.ac.uk/~bb1010/animalAI/env_linux_v0.2.zip) |
| MacOS | [download v0.2](https://www.doc.ic.ac.uk/~bb1010/animalAI/env_mac_v0.2.zip) |
| Windows | [download v0.2](https://www.doc.ic.ac.uk/~bb1010/animalAI/env_windows_v0.2.zip) |
You can now unzip the content of the archive to the `env` folder and you're ready to go! Make sure the executable
`AnimalAI.*` is in `env/`. On linux you may have to make the file executable by running `chmod +x env/AnimalAI.x86_64`.
......@@ -83,13 +83,22 @@ Occasional slow frame rates in play mode. Temporary fix: reduce screen size.
## TODO
- [ ] Improve framerates for training and visualisation.
- [ ] Add moving food.
- [x] Improve environment framerates
- [x] Add moving food
- [ ] Offer a gym wrapper for training
- [ ] Add lights out configurations.
- [ ] Add protobuf for arena spawning feedback
- [ ] Improve the way the agent spawns
## Version History
v0.1 - Initial Release
- v0.2 - New moving food rewards, improved Unity performance, bug fixes
- Moving rewards have been added, two for each type of rewards, see
[the details here](documentation/definitionsOfObjects.md####Rewards)
- Details for the maze generator
- The compiled files performances have been improved
- [Issue #7](../../issues/7) (`-inf` rewards for `t: 0` configuration) is fixed
- v0.1 - Initial Release
......@@ -114,13 +114,43 @@ arenas:
rotations: []
sizes: []
- !Item
name: GoodGoalMulti
name: MazeGenerator
positions: []
rand_color: false
rotations: []
sizes: []
- !Item
name: MazeGenerator
name: GoodGoalMove
positions: []
rand_color: false
rotations: []
sizes: []
- !Item
name: GoodGoalBounce
positions: []
rand_color: false
rotations: []
sizes: []
- !Item
name: BadGoalMove
positions: []
rand_color: false
rotations: []
sizes: []
- !Item
name: BadGoalBounce
positions: []
rand_color: false
rotations: []
sizes: []
- !Item
name: GoodGoalMultiMove
positions: []
rand_color: false
rotations: []
sizes: []
- !Item
name: GoodGoalMultiBounce
positions: []
rand_color: false
rotations: []
......
!ArenaConfig
arenas:
0: !Arena
t: 0
t: 1000
rand_all_colors: true
items:
- !Item
name: GoodGoal
positions: []
rand_color: false
rotations: []
sizes: []
1: !Arena
t: 1000
rand_all_colors: true
items:
- !Item
name: GoodGoal
positions: []
rand_color: false
rotations: []
sizes: []
2: !Arena
t: 1000
rand_all_colors: true
items:
- !Item
name: GoodGoal
positions: []
rand_color: false
rotations: []
sizes: []
3: !Arena
t: 1000
rand_all_colors: true
items:
- !Item
......
......@@ -13,6 +13,9 @@ axes is as depicted below:
<img height="200" src="PrefabsPictures/Referential.png">
**Note:** as depicted above the vertical axis is th **Y axis**, we will use Z as the forward axis (both conventions are
the ones used in Unity).
#### Immovable
These are objects that are fixed and will not be impacted by the agent or other objects:
......@@ -53,6 +56,12 @@ These are objects that are fixed and will not be impacted by the agent or other
- can rotate 360 degrees
- size range `(1,1,1)-(40,10,40)`
- cannot randomize color
- <img align="left" height="100" src="PrefabsPictures/Immovable/MazeGenerator.png"> a randomly generated maze of size
`16x16` with two entrances. Note this takes quite some room and will be hard to generate last on an arena.
- name: `MazeGenerator`
- can rotate 360 degrees
- size range constant
- can randomize color
#### Movable
......@@ -98,18 +107,73 @@ These are objects the agent can move and which will be affected by each other, f
Objects that may terminate the event if the agents collides with one:
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoal.png"> a good reward with reward 1
- name: `GoodGoal`
- can rotate 360 degrees
- size range `(0.5,0.5,0.5)-(10,10,10)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/BadGoal.png"> a bad reward with reward -1
- name: `BadGoal`
- can rotate 360 degrees
- size range `(0.5,0.5,0.5)-(10,10,10)`
- cannot randomize color
- terminates episode
- Good goals: green spheres with a reward of 1
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoal.png"> Fixed good reward
- name: `GoodGoal`
- can rotate 360 degrees
- size range `(0.5,0.5,0.5)-(10,10,10)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoal.png">A good reward moving in a straight line,
which stops moving as soon as it hits another object. Will start moving in the direction provided by the rotation
parameter
- name: `GoodGoalMove`
- can rotate 360 degrees
- size range fixed as `(1,1,1)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoal.png"> A good reward bouncing on objects. Will
start moving in the direction provided by the rotation parameter
- name: `GoodGoalBounce`
- can rotate 360 degrees
- size range fixed as `(1,1,1)`
- cannot randomize color
- terminates episode
- Bad goals: red spheres with a reward of -1
- <img align="left" height="100" src="PrefabsPictures/Rewards/BadGoal.png"> Fixed bad reward
- name: `BadGoal`
- can rotate 360 degrees
- size range `(0.5,0.5,0.5)-(10,10,10)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/BadGoal.png"> A bad reward moving in a straight line,
which stops moving as soon as it hits another object. Will start moving in the direction provided by the rotation
parameter
- name: `BadGoalMove`
- can rotate 360 degrees
- size range fixed as `(1,1,1)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/BadGoal.png"> A bad reward bouncing on objects. Will
start moving in the direction provided by the rotation parameter
- name: `BadGoalBounce`
- can rotate 360 degrees
- size range fixed as `(1,1,1)`
- cannot randomize color
- terminates episode
- Good goals multi: golden spheres with a reward of 1 that will only terminate the episode once all of them are
retrieved (and a GoodGoal if present):
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoalMulti.png"> Fixed good reward multi
- name: `GoodGoalMulti`
- can rotate 360 degrees
- size range `(0.5,0.5,0.5)-(10,10,10)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoalMulti.png"> A good reward moving in a straight
line, which stops moving as soon as it hits another object. Will start moving in the direction provided by the
rotation parameter
- name: `GoodGoalMultiMove`
- can rotate 360 degrees
- size range fixed as `(1,1,1)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoalMulti.png"> A bad reward bouncing on objects.
Will start moving in the direction provided by the rotation parameter
- name: `GoodGoalMultiBounce`
- can rotate 360 degrees
- size range fixed as `(1,1,1)`
- cannot randomize color
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/DeathZone.png"> a deathzone with reward -1
- name: `DeathZone`
- can rotate 360 degrees
......@@ -117,10 +181,4 @@ Objects that may terminate the event if the agents collides with one:
- cannot randomize color
- **the deathzone is always flat and located on the ground**
- terminates episode
- <img align="left" height="100" src="PrefabsPictures/Rewards/GoodGoalMulti.png"> a good goal with reward 1 that will only
terminate the episode once all of them are retrieved
- name: `GoodGoalMulti`
- can rotate 360 degrees
- size range `(0.5,0.5,0.5)-(5,5,5)`
- cannot randomize color
- terminates episode only when all GoodGoalsMulti (and a GoodGoal if present) are collected
......@@ -69,7 +69,7 @@ def init_environment(env_path, docker_target_name, no_graphics, worker_id, seed)
if len(sys.argv) > 1:
arena_config_in = ArenaConfig(sys.argv[1])
else:
arena_config_in = ArenaConfig('configs/allObjectsRandom.yaml')
arena_config_in = ArenaConfig('configs/justFood.yaml')
trainer_config = load_config(trainer_config_path)
env = init_environment(env_path, docker_target_name, no_graphics, worker_id, run_seed)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment