Release v0.8.0
[0.8.0] - 2024-08-07
Bug Fixes
- Use py3.11 as it still ships pkg_resources by default which docstr-coverage needs (25d649f)
- Issue was with CI.yml not installing jdrones (7898915)
- Check for different env types (5aae992)
- Check for different env types (d24b766)
- Legacy imports (f6f196c)
- Tensorflow-probability 0.24.0 not compatible with sbx 0.12.0 (6441dc2)
- Reset to initial state z not current z (5679bf1)
- Re-added is_success logging (f429dd1)
- Switch to vector-based velocity method (04ea745)
- Enable policy net_arch for RecurrentPPO to be customizable from the CLI (dcea513)
- Success distance is 1 not 1.5 (32e96bd)
- Don't break the loop if a target is reached to ensure that time stays synchronized (7a2db4a)
- Switch to SB3's DummyVecEnv to handle the multi-env logic (29bbe52)
- Properly handle collision reward (703274e)
- Ensure eval env is the same as training env (3a7833f)
- Re-include time in the observation (a5c30e4)
- Ensure observation is (1,X) in shape (a7ee23c)
- Disable JIT for codecov, but also run the same setup with jit without codecov (4f2e626)
Documentation
- Quick readme for the drl example (e1cdc81)
Features
- Install pytest-testmon from git and run in CI (#61) (b54d03b)
- Switch to Hatch from setuptools (8ce1d14)
- Energy consumption (5dc0a29)
- Energy consumption (23ca884)
- Energy consumption (75c28be)
- DRL controlled drone going from A to hovering at B (675947e)
- A working DRL example with plotting (2e42527)
- Use optuna for hyperparameter sweep in DRL example (f244822)
- A working DRL example with plotting (34014e2)
- Add wandb to example (a5204d3)
- LQR+DRL meta-controller framework (2be6be6)
- Additional eval logging (da18e46)
- Change LQR tuner to be velocity centric (c0f4849)
- Add 2D plot to graphing callback (38b4a5e)
- Swap to velocity-based action space (3afe0a2)
- Add colors and circles to 2D position plot to show the targets, their radius and order (e8d6e71)
- Multi-env DRL (d21b26d)
- Extend to any n env (04d3e72)
- Number of sub-envs from CLI (91209c0)
- Tensorboard and optuna for the 3d drl example (73bed0d)
- Optimal quintic poly trajectory generation (aa8b488)
Miscellaneous Tasks
- Remove the status updater. Was causing more issues than was worth. (bd80432)
- Bump pandas from 2.0.0 to 2.1.0 (51ff0a1)
- Bump pydantic from 1.10.6 to 2.3.0 (2f309aa)
- Bump gymnasium from 0.28.1 to 0.29.1 (234a5bb)
- Bump actions/download-artifact from 3 to 4 (0f3299c)
- Bump actions/setup-python from 4 to 5 (d56ff9e)
- Bump actions/upload-artifact from 3 to 4 (d406f45)
- Flake8 config in .flake8 ini file (871c0ca)
- Explicitly add gitignored file version.py (c2d4183)
- Use requirements.txt file for all so that dependabot can auto-update (6b68265)
- version -> _version to avoid name conflicts (f93a6df)
- Bump seaborn from 0.12.2 to 0.13.2 (3af4c7b)
- Bump matplotlib from 3.7.1 to 3.8.3 (0f7149f)
- Bump codecov/codecov-action from 3.1.1 to 4.0.2 (dd37dc5)
- Bump orhun/git-cliff-action from 2 to 3 (e4c9070)
- Bump JamesIves/github-pages-deploy-action (71b93c7)
- Bump actions/checkout from 3 to 4 (465029a)
- Bump scipy from 1.10.1 to 1.12.0 (386e883)
- Bump numpy from 1.24.2 to 1.26.4 (8a02a35)
- Bump pydantic from 2.3.0 to 2.6.2 (ff1f8a6)
- Bump codecov/codecov-action from 4.0.2 to 4.1.0 (bb6c90e)
- Bump pandas from 2.1.0 to 2.2.1 (cd083b1)
- Bump pydantic from 2.6.2 to 2.7.1 (a10848d)
- Add a fifth action that controls the scaling of the propeller actions (17a6e79)
- Switch to using "unwrapped" (a5467e2)
- Import order (d6f9879)
- Further edits to energy example (5371a38)
- Try out sbx (556968c)
- Update types (28f728c)
- Allow a reset state to be given within options (11bc080)
- Make sure num_timesteps is set properly (8127e41)
- Make sure num_timesteps is set properly (83606e4)
- Make sure num_timesteps is set properly (6a8b455)
- Change example rewards scheme to be normalized (3271621)
- Use subprocvecenv when n_envs > 1 (f3b724f)
- Make Monitor log other info keywords (010ab83)
- Normalize reward by maximum action command T (ee96f4a)
- Normalize reward by maximum action command T (fd66268)
- Play around with how the control is structured. Only let policy define target x and y pos (e0d7690)
- Enable maximum time to be specified from CLI (844d19b)
- Reduce observation space to x-y plane (04347f6)
- Include angular position and velocity in the observation (f3dcd89)
- Plot actions (0216f3e)
- Adjust observation shape to match observation (94cbc0e)
- Ensure fig.tight_layout() is called for plotting during callbacks to avoid weird layouts (6490375)
- Set target z to env z (769741b)
- Use env.unwrapped pattern (d8674e3)
- Ensure target is set before it is used within reset (8a8e3d5)
- Adjust reward normalization (6d7a036)
- Change step simulation time to be 3 (3d79c69)
- Normalize reward by maximum action command T (f82ffff)
- Enable maximum time to be specified from CLI (294cfbc)
- Expose initial_state (ab834d7)
- Log number of targets achieved (b07881e)
- Move to relative control rather than absolute (c1df545)
- Reduce step sim time down to 0.25s (6334782)
- Reduce eval episodes to 10 (f930698)
- Increase dx magnitude (915ec5f)
- Reduce sub-env sim time to 0.1s (0b6d02a)
- The reward is dependent on the target z as well, so we have to include that data in the observation to make the env fully observable (3ca0bc3)
- Include clip_range in CLI inputs (4b2f8a9)
- Increase dx magnitude (eaa10a4)
- Include the next target in the observation (fd287ce)
- Reduce sub-env sim time to 0.1s (d9b97da)
- Plot targets (783177c)
- Switch to a heading-velocity scheme and reintroduce the control action penalty (e8a4fb7)
- Set squash_output to true when using SDE (a265f65)
- Rename env to be more representative of what it is (db08c1a)
- Pass total sim time to the mult DRL env (6040eca)
- Bump pydantic from 2.7.1 to 2.8.2 (2b8b402)
- Make reward calculations optional for polynomial envs (6e38d55)
- Silence pybullet messages at import (1683157)
- Update changelog for v0.8.0 [skip pre-commit.ci] (97f35d3)
Performance
- Improve State.normed and move into main repo (1afdf85)
- Improve to_x and from_x by up to 2x speeds (2669d4b)
- Use numpy+numba in transformation calculations for better performance (fe5b953)
- Use numba jit for core simulation methods (f9b27ca)
- Use faster way of checking if any item is nan (eb81c10)
- Use a faster method to zero clip than np.clip (ea5d3bc)