Release v0.5.0
All notable changes to this project will be documented in this file.
[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 d394ad6 (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 f56225d (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
- Incude PositionDroneEnv (f488f7b)
- Docstring for LQR solve (1730bdf)
- Catagorise example notebooks (9fd5531)
- Include trajectory code in docs (3057bd0)
- Full docs (incl. maths) for QuinticPolynomialTrajectory (53b56c1)
- Explain cost function within get_reward() (b175e1c)
- Docs for BasePositionDroneEnv (aa0e1e3)
- Docs for PolyPositionDroneEnv (95d28d0)
- Docs for LQRPositionDroneEnv (52ab54f)
- Fix intersphinx links (5e0a308)
- Update README.md to show how to run all types of tests (dcb07b2)
Feat
- GA-tuned LQR (d35f8b2)
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 683a12e (ab208fd)
- Quat mul via hypothesis using scipy.spatial.transform.Rotation (5cfcd55)
- Add pytest-xdist to allow threaded test execution (92c480b)