Skip to content

Latest commit

 

History

History
607 lines (471 loc) · 59.1 KB

CHANGELOG.md

File metadata and controls

607 lines (471 loc) · 59.1 KB

Changelog

All notable changes to this project will be documented in this file.

[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

Features

  • Install pytest-testmon from git and run in CI (#61) (b54d03b)
  • Energy consumption (5dc0a29)
  • Energy consumption (23ca884)
  • Energy consumption (75c28be)
  • Switch to Hatch from setuptools (8ce1d14)
  • 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 gymnasium from 0.28.1 to 0.29.1 (234a5bb)
  • Bump pydantic from 1.10.6 to 2.3.0 (2f309aa)
  • Bump pandas from 2.0.0 to 2.1.0 (51ff0a1)
  • Bump JamesIves/github-pages-deploy-action (71b93c7)
  • Bump actions/setup-python from 4 to 5 (d56ff9e)
  • Bump actions/upload-artifact from 3 to 4 (d406f45)
  • Bump actions/download-artifact from 3 to 4 (0f3299c)
  • Bump actions/checkout from 3 to 4 (465029a)
  • Flake8 config in .flake8 ini file (871c0ca)
  • Add a fifth action that controls the scaling of the propeller actions (17a6e79)
  • 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 orhun/git-cliff-action from 2 to 3 (e4c9070)
  • Bump codecov/codecov-action from 3.1.1 to 4.0.2 (dd37dc5)
  • Bump matplotlib from 3.7.1 to 3.8.3 (0f7149f)
  • Bump seaborn from 0.12.2 to 0.13.2 (3af4c7b)
  • 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)
  • 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)
  • Bump codecov/codecov-action from 4.0.2 to 4.1.0 (bb6c90e)
  • Bump pandas from 2.1.0 to 2.2.1 (cd083b1)
  • 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 (f82ffff)
  • 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 (294cfbc)
  • 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)
  • Expose initial_state (ab834d7)
  • Move to relative control rather than absolute (c1df545)
  • Reduce step sim time down to 0.25s (6334782)
  • Reduce eval episodes to 10 (f930698)
  • Log number of targets achieved (b07881e)
  • Increase dx magnitude (915ec5f)
  • 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)
  • Reduce sub-env sim time to 0.1s (0b6d02a)
  • 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)
  • Bump pydantic from 2.6.2 to 2.7.1 (a10848d)
  • 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)

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)

Refactor

  • Example got too big, so split into sub-modules (3960e07)
  • Rename to be more accurate (1de2e16)
  • Remove old env and optuna sweeps (14090b4)
  • Handle rewards normalization in the top-level env (8bfc7a7)

[0.7.2] - 2023-04-26

Bug Fixes

  • Proper type casting to np.float64 (0b2b805)
  • Ignore init for doctests due to circular import errors (3cfb121)
  • Inherit the action space from the base clase (423ce55)
  • Skip CI jobs/steps that interact with outside resources if triggered by bot (6e5c357)
  • Set stack=True to ensure state observations are stacked (edf45d5)

Documentation

  • Docstring for new DType and FloatLike types (dd9551a)
  • Describe the reason behind the util functions for step (25ffe00)

Miscellaneous Tasks

  • Replace np.matrix with np.array (5ab2a94)
  • Bump loguru from 0.6.0 to 0.7.0 (edfb2ca)
  • Bump gymnasium from 0.27.1 to 0.28.1 (7068122)
  • More sensible dependabot settings to prevent the PR spam (29e781e)
  • Update changelog for v0.7.2 [skip pre-commit.ci] (b50132b)

Performance

  • Optimize numpy state update code for non-linear drone model (7de713f)
  • Use caching to pre-calculate time invariant params (154f3af)
  • Use caching to pre-calculate mixing matrix for drone plus (a0a207f)

Refactor

  • Stop using @property for action and observation spaces (3b89837)

Testing

  • More testing for trajectories (b66d7ca)
  • Test URDFModel hashing capabilities (ebfbcba)
  • Test the cached model data accessing method (c4b92c5)

[0.7.1] - 2023-04-05

Miscellaneous Tasks

  • Update changelog for v0.7.1 [skip pre-commit.ci] (8926597)

[0.7.0] - 2023-04-05

Bug Fixes

  • Position drones would crash if target position was the same as current position (1e97511)
  • White space in doctest for PID (ce9ef68)
  • White space in doctest for PID (09585ab)
  • Option to not show, to enable saving of figure (8c004df)
  • Reset was calling States(States(...)) causing invalid shaped arrays) (f8c3233)
  • Use local version of jdrones. Installing it previously means that a cached version could be used during unit testing (6a1edb3)
  • Reset was calling States(States(...)) causing invalid shaped arrays) (901cb08)
  • Use local version of jdrones. Installing it previously means that a cached version could be used during unit testing (3343d30)
  • Improve consistency between docstrings and code (#45) (2e1a819)

Documentation

  • Add gymnasium env names to README (42361c1)
  • Add gymnasium env names to README (3a1da91)
  • Fifth order polynomial with look-ahead drone env (fe55815)
  • Add new gymnasium env names to README (a94a720)
  • Add new gymnasium env names to README (dffdde7)
  • Fifth order polynomial with look-ahead drone env (bc79fa6)

Features

  • Move state labels to an enum to ensure consistency across the codebase (c4e5229)
  • Plotting utility functions (1da6998)
  • Allow velocity as an input to the polynomial position envs (13cc6de)
  • Fifth order polynomial with look-ahead drone env (5f9d8bd)

Miscellaneous Tasks

  • Add new plotting module in notebook quick setup (5cc8fc9)
  • Use new plotting utility functions (ec60216)
  • Add matplotlib and seaborn as a requirement (72f99ae)
  • Bump pandas from 1.5.3 to 2.0.0 (2f2f1dd)
  • Proper axis labels for 3D path plot (f6c03aa)
  • Proper axis labels for standard plots (585d2d3)
  • Clean up imports (b8ef4a5)
  • Clean up imports (16b2b94)
  • Update changelog for v0.7.0 [skip pre-commit.ci] (f9b1512)

Refactor

  • Change gymnasium env names + doctests (74d37a6)
  • Change gymnasium env names + doctests (3e0d4e6)

Testing

  • Add proper doctests into files (9e134dc)
  • Add proper doctests into files (063c55e)
  • Fifth order polynomial with look-ahead drone env (3aa4e30)
  • Fifth order polynomial with look-ahead drone env (ccdf8eb)

[0.6.0] - 2023-03-16

Bug Fixes

  • Use \mathbf instead of \textbf to ensure symbols are being rendered correctly (96e9376)
  • Python versions (was >3.8, now is >3.10) (8f5e9f7)
  • Use short ref in docstr-cov CI (ae6bf2a)
  • Use python 3.10 to build the package in the CD (320a88c)
  • --no-deps for wheels to only build jdrones and none of the deps (7b8599d)

Documentation

Features

  • Extract integration test markers to seperate package (pytest-extra-markers) (f0453b2)
  • Stabilize the simple position drone by using a straight line trajectory (35d3b70)
  • Update check status for docstr-cov (a3f275c)

Miscellaneous Tasks

  • Update graphics (d30bb66)
  • Update changelog for v0.5.3 [skip pre-commit.ci] (482652c)
  • Bump pandas from 1.3.4 to 1.5.3 (9051ed2)
  • Bump pydantic from 1.10.4 to 1.10.6 (5b69bd5)
  • Update changelog for v0.6.0 [skip pre-commit.ci] (a183231)
  • Delete changelog for redo of v0.6.0 [skip pre-commit.ci] (b8c872d)
  • Update changelog for v0.6.0 [skip pre-commit.ci] (1b98622)
  • Delete changelog for redo of v0.6.0 [skip pre-commit.ci] (85b3de8)
  • Update changelog for v0.6.0 [skip pre-commit.ci] (b714e69)

Testing

  • Search for jdrones envs rather than manually specify them (4198604)
  • Use syphar/restore-virtualenv@v1 to cache the python venv (f57d4fc)
  • Build the wheel for jdrones as part of the CI (a457ba5)

[0.5.2] - 2023-03-02

Bug Fixes

  • Rename job to match what's going on (caching all deps, not just PB) (09c1b99)
  • Set up git cliff to output proper markdown for prettier releases (4a54e72)

Miscellaneous Tasks

  • Bump nptyping from 2.4.1 to 2.5.0 (2d615da)
  • Clean up old jpdmgen references (2647eca)
  • Update changelog for v0.5.2 [skip pre-commit.ci] (1e446c9)

[0.5.0] - 2023-03-02

Bug Fixes

  • Make velocity depend on the yaw error (55e3e09)
  • Update states after step (e768caf)
  • Small changes to simplify drone model (6c540a5)
  • General controller as return, rather than PID (c7a0f3c)
  • Top-level collect errors (9d8bd3f)
  • Remove and add the appropriate envs (19e835e)
  • Incorrect classmethod implementation (df08a83)
  • Bug in PID code after updating to Controller parent class (93a6a5a)
  • Add all in the dir. Controlling what gets published is done via VSC (92db0a8)
  • Droneenv -> pbdroneenv as per conftest (9b7d206)
  • Sign changes due to linear model direction changes in d394ad6e1778d2add26d0c792f706db06c0d8ccd (72ab2cb)
  • Top level warning at every import to warn about the different coordinate systems in use (67d330a)
  • Other dependencies were causing huge increases in CI build time, so just cache them all for now (efd7e00)
  • Stupid dumb typo... (1702be4)
  • Correctly define drone motors (1860e97)
  • Simulation_name -> tag (80e3fa8)
  • Add condition within PositionDroneEnv to truncate sim if any value is nan (024387b)
  • Update docs to reflect changes in f56225d9 (previously forgot to do this) (4ff1508)
  • Typo (8af69f8)
  • Correction on the maths. This step is done elsewhere (3d8a93c)
  • Oversight from aa0e1e3 after refactor (a011166)

Documentation

Feat

Features

  • Allow wrappers to be added to the sub-env (647cc1f)
  • Implement nonlinear, linear, and nonlinear PB3 models (d394ad6)
  • Create helper functions for both rpm->rpyT and vise versa (6aea072)
  • LQR controlled drone env (eb30f2d)
  • Helper functions and classes to make going from and to state logs easier using pandas (8fd2b89)
  • Lqrdroneenv fixture (4e725fc)
  • Use scipy (f8c96a1)
  • PositionDroneEnv (11e812d)
  • Visually validate models to step inputs (6123dd2)
  • Position example (8a3c694)
  • Import script to make the imports less clunky across scripts (4000218)
  • Positiondroneenv fixture (345c5e8)
  • MPC Drone Example (80f4458)
  • Add pandas (450c653)
  • Quaternion multiplication (083e53f)
  • Rotate state by quat (8aeba67)
  • Ensure all models use RHR coordinate system, consistent with URDF and other sim packages (2e90952)
  • Polynomial trajectory drone env (7ef1768)
  • Stress test the position environments to ensure they don't crash over time (513dcf2)

Miscellaneous Tasks

  • Clean up application of forces and torques to use body (d6b2ed4)
  • Commit before deleting, to save the current state of the AttitudeAltitudeDroneEnv (54c99a9)
  • Commit before deleting, to save the current state of the VelHeadAltDroneEnv (f312e9d)
  • Commit before deleting, to save the current state of the trajectory envs (fa55246)
  • Update Q and R matrix gains from tuning via GA (5a0c71c)
  • Fix API (be1e6c2)
  • Add more test cases to transform tests (2e850c3)
  • Commit before deletion for archival purposes (1b2c99c)
  • Specify action space (497e74f)
  • Implement reset in LQR controller and be more verbose about shape of error (eb828e1)
  • Cleanup imports (e416f5b)
  • Version getting (664d4aa)
  • Remove (c1ac6cf)
  • Update Q and R matrix gains from tuning via GA (e59f514)
  • Update graphics (d8b8ac8)
  • Still broken, but at least it's been unified... (adc136a)
  • Mark integration tests (c54f3fe)
  • Rename CI step to something more descriptive (475303d)
  • Update Q and R matrix gains from tuning via GA (6d14ee9)
  • Update graphics (e78074f)
  • Add automatic linearisation of NL model to examples (e365fb1)
  • Mock pandas (4b2399c)
  • Document BaseControlledEnv (f4b039e)
  • Explicitly state the stratgies to prevent duplicates and only run the stress tests once (e976499)
  • Update changelog for v0.5.0 [skip pre-commit.ci] (3a7f9a7)

Refactor

  • Remove AttitudeAltitudeDroneEnv to be replaced by LQR controller (6df31dd)
  • Remove VelHeadAltDroneEnv to be replaced by LQR controller (9de143a)
  • Remove trajectory envs to be replaced by LQR controller (1807e57)
  • Reflect envs refactory changes (07e91ad)
  • Merge into BaseDroneEnv (d3df134)
  • Switch to creating matrices via staticmethod to enable easier access without creating the class (4b972da)
  • Move to/from x tests as per refactor (387cf9f)
  • Delete (1f4fd4f)
  • Use the new PositionDroneEnv (3149d74)
  • Split true types and data models into seperate files (f56225d)

Testing

  • Unify tests for NL and L models to ensure compatibility when designing controllers (606317d)
  • Correct input to rotation (820540d)
  • Mark pybullet env's test_vel_from_rot as skipped for now (1b30792)
  • Tested State.apply_quat (683a12e)
  • Ensure assets are consistent between lib and tests (581d0d5)
  • Ensure states are float as per 683a12ec (ab208fd)
  • Quat mul via hypothesis using scipy.spatial.transform.Rotation (5cfcd55)
  • Add pytest-xdist to allow threaded test execution (92c480b)

[0.4.0] - 2023-02-09

Bug Fixes

  • Getting versions via setuptools_scm.get_version in docs (9355812)
  • Import errors when getting version for docs (0366a1f)

Documentation

  • PID trajectory env documentation to explain the control logic (f9568f0)
  • Improve envs page readability through headings which now show up in toctree (cedc2cc)

Features

  • Add GPL3 headers to all project files (737214c)

Miscellaneous Tasks

  • Bump numpy from 1.24.1 to 1.24.2 (55af72e)
  • MathJax configurations (53fef7e)
  • Add warning about this being in alpha (dbcb855)
  • Update changelog for v0.4.0 [skip pre-commit.ci] (4e2afb6)

[0.3.1] - 2023-02-03

Bug Fixes

Miscellaneous Tasks

  • Update changelog for v0.3.1 [skip pre-commit.ci] (98c3597)

[0.3.0] - 2023-02-03

Bug Fixes

  • Install pandoc which is required by sphinx (433b146)
  • Sudo for apt-get commands (1ea68ea)

Features

Miscellaneous Tasks

[0.2.0] - 2023-02-02

Bug Fixes

  • Unused variable in the URDFModel from refactoring (95ae8b1)

Features

  • Move yaw and rpy transform calculations into maths module (99e6532)
  • Move poly traj into own module and fully test (a727658)
  • Use nptyping library to define shapes of data (d824d27)
  • Trajectory env refactored (2aeeb96)
  • Cache pybullet by installing in empty workflow (15e4a88)
  • Properly handle asset paths (583c600)

Miscellaneous Tasks

  • Use more appropriate clip_scalar (e288313)
  • Deal with refactoring of drone envs (05fe4c5)
  • Give ground plane collision data in info dict (417de31)
  • Deal with the various refactors (0455adb)
  • Deal with the various refactors (76d4715)
  • Add nptyping to requirements (c0a45f6)
  • Export DronePlus from envs (7860f19)
  • Update changelog for v0.2.0 [skip pre-commit.ci] (1a4ccd8)

Refactor

  • Remove custom action types and remodel them as types (025ca4e)
  • Alter way the info dict is manipulated (a17a9a4)
  • Merge postion alt drone env into trajectory control commands (4f931bd)
  • Move into own module (1244c96)
  • Use apply_rpy from maths module (b7182dc)
  • Merged with trajectory env API (a0c30c3)

Testing

[0.1.2] - 2023-01-31

Bug Fixes

  • Use different URLs for files that are hosted on gh-pages (d84ccb3)
  • Docstr-cov was failing whilst trying to get baseline (49d2077)
  • Hierarchy error in titles (21ea9b7)

Documentation

  • Add controllers to docs (856c336)
  • Improve index.rst to act as the landing page for the hosted docs (1091aed)

Miscellaneous Tasks

Refactor

  • Speed up docstr build by only requireing docs/requirements.txt (6d6cb64)
  • Move PyBulletIds to types module (b3ad632)
  • Remove license from docs (e4a551d)

[0.1.1] - 2023-01-31

Bug Fixes

  • Running very slow because of np.asarray (6e19344)
  • Reused function name (2690f4e)
  • Ignore license.rst as this is pretty much immutable (4ea47ca)
  • Use pyproject.toml for rstcheck config (3985349)
  • If there's no coverage, set to 0 (6949c23)
  • Allow --accept-empty in case there's no python files (1714bbf)

Documentation

Features

  • Check docstr coverage isn't being reduced (a4be21b)

Miscellaneous Tasks

  • Improve readme (f909511)
  • Add future work on motor modelling (9307e91)
  • Mute git checkouts in docstr-cov CI (9721eb9)
  • Fix flake errors (ambiguous variable, unused imports) (1f2b750)
  • Add intersphinx mapping for gymnasium (c0316f8)
  • Don't upload badge as artifact. Can't currently use it (6d9817b)
  • Upload docstr-cov badge to gh-pages (d7e923a)
  • Update changelog for v0.1.1 [skip pre-commit.ci] (066c6c3)

[0.1.0] - 2023-01-27

Bug Fixes

  • Updates to setup since there's no CPP (6e489fb)
  • Use pip wheel rather than cibuildwheel as it's currently a pure python package (94a0837)
  • No need for many and musl as it's pure python for now (3e57819)
  • Move to only python >=3.10 (87570d9)
  • Space (a870dfe)
  • Spaces (808a9cd)
  • Fix issues with runners not correctly initializing due to misconfigured matrix (5c88fca)
  • Set correct permissions for gh pages and releases (8aabdfd)
  • Install docs/requiremnts.txt rather than tests/ (961f940)
  • Revert permissions, as this is done through settings console (07b9198)

Features

Miscellaneous Tasks

  • Update changelog for v0.2.0 [skip pre-commit.ci] (e4b25d4)
  • Update changelog for v0.1.0 [skip pre-commit.ci] (9b40238)
  • Update how conda is used in CI (d9704d8)
  • A little import cleanup (6cb83e9)
  • Update CI to also run integration tests but standalone (aa867ce)
  • Document transform funcs to show what's happening behind the scenes in PB3 (645ce50)
  • Update changelog for v0.1.0 [skip pre-commit.ci] (79d9f01)
  • Delete changelog for redo of v0.1.0 [skip pre-commit.ci] (45f3fb3)
  • Update changelog for v0.1.0 [skip pre-commit.ci] (d3dc768)

Refactor

Testing

  • Skip integration tests (2651c8b)
  • Fix tests since quats and euler have multiple correct variations (5a3a96d)