Skip to content

Feature/fastpathplanning#90

Merged
energy-in-joles merged 71 commits intomainfrom
feature/fastpathplanning
Apr 9, 2026
Merged

Feature/fastpathplanning#90
energy-in-joles merged 71 commits intomainfrom
feature/fastpathplanning

Conversation

@valentinbruehl
Copy link
Copy Markdown
Member

New motion planning algorithm inspired by the fast-path-planning algorithm described here.

fred-huang122 and others added 23 commits February 22, 2026 15:40
Add badge for DeepWiki to README
* Implemented a flag to add Gaussian noise in rsim. Added another more hackish implementation for comparison.

* Cleaned up implementation, removed hackish alternative

* Working on adding noise to each component independently

* Completed implementation of noise addition

* Addressed comments on PR, got orientation to work

* Addressed comments in PR, added vanishing, added support for ball

* Minor linting

* Moved utility functions for adding Gaussian noise from classes representing balls/robots to the SSLStdenv class. Learned about this best practice in this week's lecture

* Turned off a flag used for testing

---------

Co-authored-by: Joel <42647510+energy-in-joles@users.noreply.github.com>
* Fix: fix the goalkeeper and defencer

* fix: the robot will not move if it block the ball

* Fix: the robot will not move if it block the path

* Update utama_core/skills/src/defend_parameter.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix goalkeeper defender position logic for left goal defense (#104)

* Initial plan

* Fix defender position logic for left/right goal defense

Co-authored-by: NingchuanIC <212761386+NingchuanIC@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NingchuanIC <212761386+NingchuanIC@users.noreply.github.com>

* Fix side-aware defender position check in goalkeeper logic (#105)

* Initial plan

* Fix: Make defender position check side-aware

Co-authored-by: NingchuanIC <212761386+NingchuanIC@users.noreply.github.com>

---------

Co-authored-by: NingchuanIC <212761386+NingchuanIC@users.noreply.github.com>

---------

Co-authored-by: NingchuanIC <212761386+NingchuanIC@users.noreply.github.com>
Co-authored-by: Fred Huang <60901360+fred-huang122@users.noreply.github.com>
* Added extracted vision data with varying degrees of vanishing and noise

* Attempt to store past raw game frames; starting work on test cases

* added Andrew's filter

* Integrated filters into position refiner

* bad example test

* Refined filter weights, added vision data for testing

* Updated test data

* Noise now added manually, updated test data

* Amended test cases to address CI failure due to changes to PositionRefiner's constructor

* Refinements to filters based on empirical data

* Added some references for building tests

* First pass unit tests

* Some issues with unit tests. Working on fix

* Added live testing utilities, conducted analytics for filters, refactored classes, added new datasets

* Finalised analysis of filters, unit tests are working, added more live testing utilities

* Deleted redundant files

* Minor refinements to the live testing utilities

* fixed formatting issues

* Commented out utilities for testing and exporting data

* Analysed vanishing problem, created sample datasets

* Position refiner now has access to the last game frame and command map. Imputing feature is coming along , but there are unexplained spikes that are preventing it from working properly

* Fixed issues, now imputes correctly based on last gameframe

* Completed work on vanishing

* Incorporated some suggestions from copilot regardign style

* Addressed comments on PR

* Removed redundant utility function

* Factored out static method into global utility

* cleanup

* Added back error handling for imports when run from Jupyter

* Renamed datasets to include the control mode, filtering only turned on during run mode together with vanishing

* Fixed bug in tests due to renaming of files

* Created working Kalman filter. Working on analytics

* Working on analytics

* Implemented a flag to add Gaussian noise in rsim. Added another more hackish implementation for comparison.

* Analysing Kalman filter performance; need to merge new rsim utilities first

* Cleaned up implementation, removed hackish alternative

* Working on adding noise to each component independently

* Completed implementation of noise addition

* Addressed comments on PR, got orientation to work

* Performed benchmarking on kalman filters

* Performed benchmarking on kalman filters

* More benchmarking

* Kalman filter performance validated

* Kalman filters now handle vanishing

* Removed non-performing implementations

* Rejigged analytics for Kalman filter

* Addressed comments in PR, added vanishing, added support for ball

* Minor linting

* Merge branch 'feature/rsim_noise' into feature/kalman

* Added filter for ball, added support for orientation

* Now able to run analytics for orientation

* Moved utility functions for adding Gaussian noise from classes representing balls/robots to the SSLStdenv class. Learned about this best practice in this week's lecture

* Turned off a flag used for testing

* Minor bug fix

* Analysing data for orientation, plus some minor fixes

* Completed work with Kalman filters, will now work on PR

* Removed some redundant files

* Renamed folder to ease merging with testing

* Renamed folder to ease merging with testing

* Cleanup, getting ready for PR

* Small fix to satisfy linter

* Final cleanup after reviewing PR diff

* Improved filter docs

* add docstring to math_utils.py

* remove unused get_displacement_vector

* remove unused import

* [chore] formatting

* chore: formatting

* fix matrix inversion numerical instability and formatting of class name

* remove improper static method use

* improper use of tuple[float] type hint and mix bug referencing self.covariance_mat_xy instead of self.covariance_mat in KalmanFilterBall

* removed references of .cmd_map not used position.py

* fix test failure

* Made non-global constant variable lower-cased

* Using matrix transpose attribute instead of function call

* update test cases

* Removed redundant last_game_frame attribute

* separate my and opp refiners

* update running attribute for opposite refiner too

* Minor formatting and naming changes to Kalman filter

* fix incorrect assumption about robot id numbering in position refiner tests

* corrected direct imputation of None values into vision data. Fix bug causing test fail

* improve reset functionaity of position refiner

* Fixed bugs introduced when removing assumption about numbering

* fix dictionary logic in position refiner

* update optional typing for KalmanFilterBall filter

* fix typing in KalmanFilterBall

* fix point cycle strat

* Fixed issues in test due to filters no longer having ids, and now taking Robot instead of Dict[Int, Robot]

* Kalman filter now has id attribute

* label vision data using kalman id instead of last frame id

* add comment about treating substitution as vanishing

* remove unncessary imports

* add authors

---------

Co-authored-by: Fred Huang <fredhuang122106@gmail.com>
Co-authored-by: Joel <nzmjoel@gmail.com>
* Added extracted vision data with varying degrees of vanishing and noise

* Attempt to store past raw game frames; starting work on test cases

* added Andrew's filter

* Integrated filters into position refiner

* bad example test

* Refined filter weights, added vision data for testing

* Updated test data

* Noise now added manually, updated test data

* Amended test cases to address CI failure due to changes to PositionRefiner's constructor

* Refinements to filters based on empirical data

* Added some references for building tests

* First pass unit tests

* Some issues with unit tests. Working on fix

* Added live testing utilities, conducted analytics for filters, refactored classes, added new datasets

* Finalised analysis of filters, unit tests are working, added more live testing utilities

* Deleted redundant files

* Minor refinements to the live testing utilities

* fixed formatting issues

* Commented out utilities for testing and exporting data

* Addressed comments on PR

* Removed redundant utility function

* cleanup

* Added back error handling for imports when run from Jupyter

* Moved unused testing/debugging utilities to a separate text file, turned off filtering by default with a flag to PositionRefiner

* Further cleanup

* Removed all testing utilities, will create a testing branch

* Cleaned up test suite

* Removed data analysis

* Removed data analysis

* Removed data analysis

* Final cleanup

* revert position_refiner_integration_test

* update test

* fixes and formatting

* remove unncessary comments

* update readme

---------

Co-authored-by: Fred Huang <fredhuang122106@gmail.com>
Co-authored-by: Joel <nzmjoel@gmail.com>
This reverts commit ba83a96.
@energy-in-joles energy-in-joles added the release:minor Minor changes to main label Apr 9, 2026
@energy-in-joles energy-in-joles self-requested a review April 9, 2026 03:53
@energy-in-joles energy-in-joles merged commit 0d6e52b into main Apr 9, 2026
2 checks passed
@energy-in-joles energy-in-joles deleted the feature/fastpathplanning branch April 9, 2026 03:54
@energy-in-joles energy-in-joles restored the feature/fastpathplanning branch April 9, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:minor Minor changes to main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants